From 77001cbc068833fcc7529b0e1d13e977df89ceb4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 12:30:00 +0100 Subject: [PATCH 001/651] build(deps): update rust crate tempfile to 3.8.1 (#5551) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 35 ++++++++++++++++++++++------------- Cargo.toml | 2 +- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3be0a2c1..f78a2d98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1676,9 +1676,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libz-ng-sys" @@ -1715,9 +1715,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "lock_api" @@ -2388,6 +2388,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -2460,14 +2469,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.11" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ "bitflags 2.4.0", "errno 0.3.1", "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys 0.4.10", "windows-sys", ] @@ -2876,14 +2885,14 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand 2.0.0", - "redox_syscall 0.3.5", - "rustix 0.38.11", + "redox_syscall 0.4.1", + "rustix 0.38.21", "windows-sys", ] @@ -2893,7 +2902,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.11", + "rustix 0.38.21", "windows-sys", ] @@ -3352,7 +3361,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.11", + "rustix 0.38.21", "windows-sys", ] diff --git a/Cargo.toml b/Cargo.toml index 0d1f5013..da95a8d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,7 +125,7 @@ winres = "0.1.12" [dev-dependencies] mockall = "0.11" -tempfile = "3.8.0" +tempfile = "3.8.1" [profile.release] codegen-units = 1 From 38ede591c5c5b5b83751c87c8c78d17568405d3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 12:30:16 +0100 Subject: [PATCH 002/651] build(deps): update rust crate serde_json to 1.0.108 (#5550) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f78a2d98..882c6f2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2584,9 +2584,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index da95a8d3..260f8dcc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.2", default-features = false, features = ["perf", "std rust-ini = "0.19.0" semver = "1.0.20" serde = { version = "1.0.189", features = ["derive"] } -serde_json = "1.0.107" +serde_json = "1.0.108" sha1 = "0.10.6" shadow-rs = { version = "0.24.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 7d474b9fdb9c56b5b891ad1cbb2ab59ee304c5ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 12:31:51 +0100 Subject: [PATCH 003/651] build(deps): update rust crate chrono to 0.4.31 (#5445) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 882c6f2c..7820c4f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -342,9 +342,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index 260f8dcc..8355649e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.30", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.7", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.4" dirs-next = "2.0.0" From ae58c9233d1247acebbb6616cebb16dc8bedbad0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 13:09:52 +0100 Subject: [PATCH 004/651] build(deps): update rust crate serde to 1.0.190 (#5527) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7820c4f3..68ffdfdc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2553,18 +2553,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.189" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.189" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 8355649e..bf66d1db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.19.0" semver = "1.0.20" -serde = { version = "1.0.189", features = ["derive"] } +serde = { version = "1.0.190", features = ["derive"] } serde_json = "1.0.108" sha1 = "0.10.6" shadow-rs = { version = "0.24.1", default-features = false } From 65c2f3cfb9b3f71be7d3d0eed824a04506548cac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 13:17:35 +0100 Subject: [PATCH 005/651] build(deps): update toml crates (#5552) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 14 +++++++------- Cargo.toml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 68ffdfdc..674f8305 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2796,8 +2796,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.4", - "toml_edit 0.20.4", + "toml 0.8.6", + "toml_edit 0.20.7", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3051,15 +3051,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef75d881185fd2df4a040793927c153d863651108a93c7e17a9e591baa95cc6" +checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" dependencies = [ "indexmap 2.0.2", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.4", + "toml_edit 0.20.7", ] [[package]] @@ -3084,9 +3084,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.4" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380f9e8120405471f7c9ad1860a713ef5ece6a670c7eae39225e477340f32fc4" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap 2.0.2", "serde", diff --git a/Cargo.toml b/Cargo.toml index bf66d1db..15a013ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.2", optional = true } strsim = "0.10.0" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.4", features = ["preserve_order"] } -toml_edit = "0.20.4" +toml = { version = "0.8.6", features = ["preserve_order"] } +toml_edit = "0.20.7" unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" From bc0d57dda91c71bd0c01afbf22c6344db7d0a36e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 11:31:08 +0000 Subject: [PATCH 006/651] build(deps): update rust crate indexmap to 2.1.0 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 674f8305..b06f8a87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1565,9 +1565,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", "hashbrown 0.14.1", @@ -2503,7 +2503,7 @@ checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.0.2", + "indexmap 2.1.0", "schemars_derive", "serde", "serde_json", @@ -2766,7 +2766,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.0.2", + "indexmap 2.1.0", "log", "mockall", "nix 0.27.1", @@ -3055,7 +3055,7 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_spanned", "toml_datetime", @@ -3077,7 +3077,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "toml_datetime", "winnow", ] @@ -3088,7 +3088,7 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index 15a013ee..241cc6b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.55.2", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.36.0", optional = true } -indexmap = { version = "2.0.2", features = ["serde"] } +indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From 1fd1562a4d7b248d0d8166c46e32c22ce59613e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 11:32:10 +0000 Subject: [PATCH 007/651] build(deps): update rust crate rust-ini to 0.20.0 --- Cargo.lock | 16 +++++----------- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b06f8a87..4b6b86e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1480,12 +1480,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - [[package]] name = "hashbrown" version = "0.14.1" @@ -2011,12 +2005,12 @@ dependencies = [ [[package]] name = "ordered-multimap" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e" +checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f" dependencies = [ "dlv-list", - "hashbrown 0.13.2", + "hashbrown 0.14.1", ] [[package]] @@ -2445,9 +2439,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rust-ini" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091" +checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" dependencies = [ "cfg-if", "ordered-multimap", diff --git a/Cargo.toml b/Cargo.toml index 241cc6b2..e4ab1f77 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } -rust-ini = "0.19.0" +rust-ini = "0.20.0" semver = "1.0.20" serde = { version = "1.0.190", features = ["derive"] } serde_json = "1.0.108" From 96736fabaa5ca9777d3d7fcb84e4a589ecea1f0a Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Mon, 6 Nov 2023 17:33:05 +0900 Subject: [PATCH 008/651] Add "Stand With Ukraine" badge --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 13f7d30e..1205db8f 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Follow @StarshipPrompt on Twitter" /> + Stand With Ukraine

From 8ce74ac85eab343d96ff9d8f7ec204c3062a5128 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Thu, 26 Oct 2023 20:43:01 +0200 Subject: [PATCH 009/651] chore: cargo update --- Cargo.lock | 713 ++++++++++++++++++++++++++++------------------------- 1 file changed, 380 insertions(+), 333 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b6b86e9..149158b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -48,15 +48,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" dependencies = [ "utf8parse", ] @@ -82,9 +82,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arc-swap" @@ -104,31 +104,31 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" dependencies = [ - "event-listener", + "event-listener 2.5.3", "futures-core", ] [[package]] name = "async-channel" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", - "event-listener", + "event-listener 2.5.3", "futures-core", ] [[package]] name = "async-executor" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" dependencies = [ "async-lock", "async-task", "concurrent-queue", - "fastrand 1.9.0", + "fastrand 2.0.1", "futures-lite", "slab", ] @@ -158,73 +158,110 @@ dependencies = [ "futures-lite", "log", "parking", - "polling", - "rustix 0.37.21", + "polling 2.8.0", + "rustix 0.37.27", "slab", "socket2", "waker-fn", ] [[package]] -name = "async-lock" -version = "2.7.0" +name = "async-io" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "10da8f3146014722c89e7859e1d7bb97873125d7346d10ca642ffab794355828" dependencies = [ - "event-listener", + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling 3.3.0", + "rustix 0.38.21", + "slab", + "tracing", + "waker-fn", + "windows-sys", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", ] [[package]] name = "async-process" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" dependencies = [ - "async-io", + "async-io 1.13.0", "async-lock", - "autocfg", + "async-signal", "blocking", "cfg-if", - "event-listener", + "event-listener 3.0.1", "futures-lite", - "rustix 0.37.21", - "signal-hook 0.3.15", + "rustix 0.38.21", "windows-sys", ] [[package]] name = "async-recursion" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.1.0", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.21", + "signal-hook-registry", + "slab", + "windows-sys", ] [[package]] name = "async-task" -version = "4.4.0" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" +checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] name = "atomic-waker" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" @@ -246,9 +283,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "block" @@ -276,28 +313,28 @@ dependencies = [ [[package]] name = "blocking" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" dependencies = [ "async-channel", "async-lock", "async-task", - "atomic-waker", - "fastrand 1.9.0", + "fastrand 2.0.1", + "futures-io", "futures-lite", - "log", + "piper", + "tracing", ] [[package]] name = "bstr" -version = "1.5.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" +checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" dependencies = [ "memchr", - "once_cell", - "regex-automata 0.1.10", + "regex-automata", "serde", ] @@ -312,27 +349,30 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytesize" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -396,7 +436,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] @@ -428,49 +468,47 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "concurrent-queue" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" dependencies = [ "crossbeam-utils", ] [[package]] name = "const-random" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e" +checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" dependencies = [ "const-random-macro", - "proc-macro-hack", ] [[package]] name = "const-random-macro" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ "getrandom", "once_cell", - "proc-macro-hack", "tiny-keccak", ] [[package]] name = "const_format" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c990efc7a285731f9a4378d81aff2f0e85a2c8781a05ef0f8baa8dac54d0ff48" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" dependencies = [ "const_format_proc_macros", ] [[package]] name = "const_format_proc_macros" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e026b6ce194a874cb9cf32cd5772d1ef9767cc8fcb5765948d74f37a9d8b2bf6" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" dependencies = [ "proc-macro2", "quote", @@ -495,9 +533,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -610,9 +648,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", +] [[package]] name = "derivative" @@ -693,9 +734,9 @@ dependencies = [ [[package]] name = "dlv-list" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d529fd73d344663edfd598ccb3f344e46034db51ebd103518eae34338248ad73" +checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" dependencies = [ "const-random", ] @@ -714,21 +755,21 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "enumflags2" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" +checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" dependencies = [ "enumflags2_derive", "serde", @@ -736,20 +777,20 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" +checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] name = "equivalent" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" @@ -764,11 +805,10 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ - "errno-dragonfly", "libc", "windows-sys", ] @@ -790,10 +830,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "faster-hex" -version = "0.8.0" +name = "event-listener" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9042d281a5eec0f2387f8c3ea6c4514e2cf2732c90a85aaf383b761ee3b290d" +checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "faster-hex" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a" dependencies = [ "serde", ] @@ -809,9 +860,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "filedescriptor" @@ -838,9 +889,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "libz-ng-sys", @@ -880,15 +931,15 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-lite" @@ -907,21 +958,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-core", "futures-io", @@ -1079,7 +1130,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea7505b97f4d8e7933e29735a568ba2f86d8de466669d9f0e8321384f9972f47" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "bstr", "gix-path", "libc", @@ -1161,7 +1212,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fac08925dbc14d414bd02eb45ffb4cecd912d1fce3883f867bd0103c192d3e4" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "bstr", "gix-features", "gix-path", @@ -1184,7 +1235,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "409268480841ad008e81c17ca5a293393fbf9f2b6c2f85b8ab9de1f0c5176a16" dependencies = [ "gix-hash", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "parking_lot", ] @@ -1194,7 +1245,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c83a4fcc121b2f2e109088f677f89f85e7a8ebf39e8e6659c0ae54d4283b1650" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "bstr", "btoi", "filetime", @@ -1230,7 +1281,7 @@ checksum = "9d8acb5ee668d55f0f2d19a320a3f9ef67a6999ad483e11135abcc2464ed18b6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] @@ -1388,7 +1439,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92b9542ac025a8c02ed5d17b3fc031a111a384e859d0be3532ec4d58c40a0f28" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "gix-path", "libc", "windows 0.48.0", @@ -1449,7 +1500,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f" dependencies = [ - "fastrand 2.0.0", + "fastrand 2.0.1", ] [[package]] @@ -1482,9 +1533,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" [[package]] name = "heck" @@ -1494,9 +1545,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -1515,16 +1566,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows 0.48.0", + "windows-core", ] [[package]] @@ -1564,7 +1615,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.1", + "hashbrown 0.14.2", "serde", ] @@ -1633,15 +1684,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ "wasm-bindgen", ] @@ -1675,10 +1726,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] -name = "libz-ng-sys" -version = "1.1.9" +name = "libredox" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468756f34903b582fe7154dc1ffdebd89d0562c4a43b53c621bb0f1b1043ccb" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libz-ng-sys" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63" dependencies = [ "cmake", "libc", @@ -1686,9 +1748,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.9" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "pkg-config", @@ -1715,9 +1777,9 @@ checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -1762,9 +1824,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" @@ -1843,15 +1905,14 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.7.1", - "static_assertions", ] [[package]] @@ -1860,7 +1921,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cfg-if", "libc", ] @@ -1926,9 +1987,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] @@ -1996,9 +2057,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ "num-traits", ] @@ -2010,7 +2071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f" dependencies = [ "dlv-list", - "hashbrown 0.14.1", + "hashbrown 0.14.2", ] [[package]] @@ -2036,9 +2097,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -2052,13 +2113,13 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.4.1", "smallvec", "windows-targets", ] @@ -2122,7 +2183,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] @@ -2133,7 +2194,7 @@ checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" dependencies = [ "once_cell", "pest", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -2176,9 +2237,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2186,6 +2247,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + [[package]] name = "pkg-config" version = "0.3.27" @@ -2208,6 +2280,26 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "polling" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" +dependencies = [ + "cfg-if", + "concurrent-queue", + "pin-project-lite", + "rustix 0.38.21", + "tracing", + "windows-sys", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -2254,17 +2346,11 @@ dependencies = [ "toml_edit 0.19.15", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro2" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2277,7 +2363,7 @@ checksum = "32e056a69288d0a211f4c74c48391c6eb86e714fdcb9dc58a9f34302da9c20bf" dependencies = [ "crossbeam-channel", "libc", - "signal-hook 0.3.15", + "signal-hook 0.3.17", "windows-sys", ] @@ -2289,9 +2375,9 @@ checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf" [[package]] name = "quick-xml" -version = "0.23.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" dependencies = [ "memchr", ] @@ -2307,9 +2393,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.29" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2364,15 +2450,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.3.5" @@ -2393,12 +2470,12 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ "getrandom", - "redox_syscall 0.2.16", + "libredox", "thiserror", ] @@ -2410,16 +2487,10 @@ checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", + "regex-automata", "regex-syntax", ] -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" - [[package]] name = "regex-automata" version = "0.4.3" @@ -2449,12 +2520,12 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.21" +version = "0.37.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25693a73057a1b4cb56179dd3c7ea21a7c6c5ee7d85781f5749b46f34b79c" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", - "errno 0.3.1", + "errno 0.3.5", "io-lifetimes", "libc", "linux-raw-sys 0.3.8", @@ -2467,8 +2538,8 @@ version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.4.0", - "errno 0.3.1", + "bitflags 2.4.1", + "errno 0.3.5", "libc", "linux-raw-sys 0.4.10", "windows-sys", @@ -2476,9 +2547,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "same-file" @@ -2517,9 +2588,9 @@ dependencies = [ [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" @@ -2562,7 +2633,7 @@ checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] @@ -2589,13 +2660,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.12" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] @@ -2621,9 +2692,9 @@ dependencies = [ [[package]] name = "sha1-asm" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563d4f7100bc3fce234e5f37bbf63dc2752558964505ba6ac3f7204bdc59eaac" +checksum = "2ba6947745e7f86be3b8af00b7355857085dbdf8901393c89514510eb61f4e21" dependencies = [ "cc", ] @@ -2649,9 +2720,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -2697,9 +2768,9 @@ dependencies = [ [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -2716,30 +2787,30 @@ dependencies = [ [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -2813,7 +2884,7 @@ dependencies = [ "lazycell", "libc", "mach2", - "nix 0.26.2", + "nix 0.26.4", "num-traits", "uom", "winapi", @@ -2844,9 +2915,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ "proc-macro2", "quote", @@ -2869,12 +2940,12 @@ dependencies = [ [[package]] name = "tauri-winrt-notification" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d70573554e7630c2ca3677ea78d5ae6b030aedee5f9bf33c15d644904fa698" +checksum = "006851c9ccefa3c38a7646b8cec804bb429def3da10497bfa977179869c3e8e2" dependencies = [ - "quick-xml 0.23.1", - "windows 0.39.0", + "quick-xml 0.30.0", + "windows 0.51.1", ] [[package]] @@ -2884,7 +2955,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", - "fastrand 2.0.0", + "fastrand 2.0.1", "redox_syscall 0.4.1", "rustix 0.38.21", "windows-sys", @@ -2962,34 +3033,35 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.47" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.47" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] name = "time" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", "itoa", "libc", "num_threads", + "powerfmt", "serde", "time-core", "time-macros", @@ -2997,15 +3069,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -3091,11 +3163,10 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3103,35 +3174,35 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", ] [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uds_windows" @@ -3154,9 +3225,9 @@ dependencies = [ [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] @@ -3175,9 +3246,9 @@ checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552" [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -3218,9 +3289,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -3272,15 +3343,15 @@ dependencies = [ [[package]] name = "waker-fn" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -3294,9 +3365,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3304,24 +3375,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3329,22 +3400,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" [[package]] name = "which" @@ -3377,9 +3448,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -3392,22 +3463,28 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.39.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows_aarch64_msvc 0.39.0", - "windows_i686_gnu 0.39.0", - "windows_i686_msvc 0.39.0", - "windows_x86_64_gnu 0.39.0", - "windows_x86_64_msvc 0.39.0", + "windows-targets", ] [[package]] name = "windows" -version = "0.48.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core", + "windows-targets", +] + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ "windows-targets", ] @@ -3423,96 +3500,66 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.48.0", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" -version = "0.39.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.14" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" dependencies = [ "memchr", ] @@ -3532,7 +3579,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" dependencies = [ - "nix 0.26.2", + "nix 0.26.4", "winapi", ] @@ -3554,7 +3601,7 @@ dependencies = [ "async-broadcast", "async-executor", "async-fs", - "async-io", + "async-io 1.13.0", "async-lock", "async-process", "async-recursion", @@ -3564,12 +3611,12 @@ dependencies = [ "byteorder", "derivative", "enumflags2", - "event-listener", + "event-listener 2.5.3", "futures-core", "futures-sink", "futures-util", "hex", - "nix 0.26.2", + "nix 0.26.4", "once_cell", "ordered-stream", "rand", From 0ed7c6f65010093b6253acbb178cd68c79c93f2a Mon Sep 17 00:00:00 2001 From: Patrick Stadler Date: Thu, 19 Oct 2023 11:58:23 +0200 Subject: [PATCH 010/651] zsh: clear exit code between prompts --- src/init/starship.zsh | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/init/starship.zsh b/src/init/starship.zsh index 01229be5..33fc3cee 100644 --- a/src/init/starship.zsh +++ b/src/init/starship.zsh @@ -23,23 +23,22 @@ else } fi - # The two functions below follow the naming convention `prompt__` # for compatibility with Zsh's prompt system. See # https://github.com/zsh-users/zsh/blob/2876c25a28b8052d6683027998cc118fc9b50157/Functions/Prompts/promptinit#L155 # Runs before each new command line. prompt_starship_precmd() { - # Save the status, because commands in this pipeline will change $? + # Save the status, because subsequent commands in this function will change $? STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${pipestatus[@]}) - # Compute cmd_duration, if we have a time to consume, otherwise clear the - # previous duration + # Calculate duration if a command was executed if (( ${+STARSHIP_START_TIME} )); then __starship_get_time && (( STARSHIP_DURATION = STARSHIP_CAPTURED_TIME - STARSHIP_START_TIME )) unset STARSHIP_START_TIME + # Drop status and duration otherwise else - unset STARSHIP_DURATION + unset STARSHIP_DURATION STARSHIP_CMD_STATUS STARSHIP_PIPE_STATUS fi # Use length of jobstates array as number of jobs. Expansion fails inside @@ -47,7 +46,8 @@ prompt_starship_precmd() { STARSHIP_JOBS_COUNT=${#jobstates} } -# Runs after the user submits the command line, but before it is executed. +# Runs after the user submits the command line, but before it is executed and +# only if there's an actual command to run prompt_starship_preexec() { __starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME } @@ -76,8 +76,6 @@ else zle -N zle-keymap-select starship_zle-keymap-select-wrapped; fi -__starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME - export STARSHIP_SHELL="zsh" # Set up the session key that will be used to store logs @@ -92,4 +90,3 @@ setopt promptsubst PROMPT='$(::STARSHIP:: prompt --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' RPROMPT='$(::STARSHIP:: prompt --right --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' PROMPT2="$(::STARSHIP:: prompt --continuation)" - From 183dd7daf304f34be3158ffa28702c4f94c22430 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 14:27:16 +0000 Subject: [PATCH 011/651] build(deps): update crate-ci/typos action to v1.16.23 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 6574ae4d..fe8687dd 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - - uses: crate-ci/typos@v1.16.22 + - uses: crate-ci/typos@v1.16.23 From d51d2a3f04dd1290d8ac5cd2c473fc0fb3001586 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 14:27:44 +0000 Subject: [PATCH 012/651] build(deps): update rust crate serde to 1.0.192 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 149158b3..b9d2e85f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2618,18 +2618,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index e4ab1f77..c41e685a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.20" -serde = { version = "1.0.190", features = ["derive"] } +serde = { version = "1.0.192", features = ["derive"] } serde_json = "1.0.108" sha1 = "0.10.6" shadow-rs = { version = "0.24.1", default-features = false } From 5c9e6801f314b978edb7621b96798524d60e5144 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 14:28:06 +0000 Subject: [PATCH 013/651] build(deps): update toml crates --- Cargo.lock | 14 +++++++------- Cargo.toml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b9d2e85f..2662eafd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2861,8 +2861,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.6", - "toml_edit 0.20.7", + "toml 0.8.8", + "toml_edit 0.21.0", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3117,15 +3117,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ "indexmap 2.1.0", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.7", + "toml_edit 0.21.0", ] [[package]] @@ -3150,9 +3150,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap 2.1.0", "serde", diff --git a/Cargo.toml b/Cargo.toml index c41e685a..9b9bce63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.2", optional = true } strsim = "0.10.0" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.6", features = ["preserve_order"] } -toml_edit = "0.20.7" +toml = { version = "0.8.8", features = ["preserve_order"] } +toml_edit = "0.21.0" unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" From ba19753289768632b63f2028e00796ee231dc0e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 01:27:17 +0000 Subject: [PATCH 014/651] build(deps): update rust crate clap to 4.4.8 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2662eafd..d1ed485b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" +checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" dependencies = [ "clap_builder", "clap_derive", @@ -406,9 +406,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" +checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 9b9bce63..7029ca3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.7", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.8", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.4" dirs-next = "2.0.0" dunce = "1.0.4" From b5f9457b28db92406c03576663a6181a7081fd0f Mon Sep 17 00:00:00 2001 From: bestgopher <84328409@qq.com> Date: Wed, 25 Oct 2023 22:20:40 +0800 Subject: [PATCH 015/651] refactor(modules): use whoami crate to get username Signed-off-by: bestgopher <84328409@qq.com> --- Cargo.lock | 18 +++++++----------- Cargo.toml | 2 +- src/configure.rs | 15 +++++++++------ src/modules/aws.rs | 6 +++--- src/modules/hostname.rs | 4 ++-- src/modules/username.rs | 16 +++++----------- src/print.rs | 6 ++++-- 7 files changed, 31 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d1ed485b..984d2573 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -994,16 +994,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" -dependencies = [ - "libc", - "windows-targets", -] - [[package]] name = "getrandom" version = "0.2.10" @@ -2826,7 +2816,6 @@ dependencies = [ "deelevate", "dirs-next", "dunce", - "gethostname", "gix", "gix-features", "guess_host_triple", @@ -2868,6 +2857,7 @@ dependencies = [ "urlencoding", "versions", "which", + "whoami", "windows 0.48.0", "winres", "yaml-rust", @@ -3430,6 +3420,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "whoami" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" + [[package]] name = "winapi" version = "0.3.9" diff --git a/Cargo.toml b/Cargo.toml index 7029ca3d..68904555 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,7 +47,6 @@ clap = { version = "4.4.8", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.4" dirs-next = "2.0.0" dunce = "1.0.4" -gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.55.2", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.36.0", optional = true } @@ -94,6 +93,7 @@ process_control = { version = "4.0.3", features = ["crossbeam-channel"] } guess_host_triple = "0.1.3" home = "0.5.5" shell-words = "1.1.0" +whoami = { version = "1.4.1", default-features = false } [dependencies.schemars] version = "0.8.15" diff --git a/src/configure.rs b/src/configure.rs index ec23cf79..9ce0be34 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -1,3 +1,4 @@ +use std::fmt::Write as _; use std::process; use std::process::Stdio; use std::str::FromStr; @@ -96,8 +97,10 @@ pub fn print_configuration(context: &Context, use_default: bool, paths: &[String "# $all is shorthand for {}", PROMPT_ORDER .iter() - .map(|module_name| format!("${module_name}")) - .collect::() + .fold(String::new(), |mut output, module_name| { + let _ = write!(output, "${module_name}"); + output + }) ); // Unwrapping is fine because config is based on FullConfig @@ -105,10 +108,10 @@ pub fn print_configuration(context: &Context, use_default: bool, paths: &[String if !use_default && !custom_modules.is_empty() { println!( "# $custom (excluding any modules already listed in `format`) is shorthand for {}", - custom_modules - .keys() - .map(|module_name| format!("${{custom.{module_name}}}")) - .collect::() + custom_modules.keys().fold(String::new(), |mut output, b| { + let _ = write!(output, "${{custom.{b}}}"); + output + }) ); } } diff --git a/src/modules/aws.rs b/src/modules/aws.rs index 0d837c2c..115c5bbb 100644 --- a/src/modules/aws.rs +++ b/src/modules/aws.rs @@ -668,7 +668,7 @@ credential_process = /opt/bin/awscreds-retriever let expiration_env_vars = ["AWS_SESSION_EXPIRATION", "AWS_CREDENTIAL_EXPIRATION"]; expiration_env_vars.iter().for_each(|env_var| { - let now_plus_half_hour: DateTime = chrono::DateTime::from_utc( + let now_plus_half_hour: DateTime = DateTime::from_naive_utc_and_offset( NaiveDateTime::from_timestamp_opt(chrono::Local::now().timestamp() + 1800, 0) .unwrap(), Utc, @@ -702,7 +702,7 @@ credential_process = /opt/bin/awscreds-retriever use chrono::{DateTime, NaiveDateTime, Utc}; - let now_plus_half_hour: DateTime = chrono::DateTime::from_utc( + let now_plus_half_hour: DateTime = DateTime::from_naive_utc_and_offset( NaiveDateTime::from_timestamp_opt(chrono::Local::now().timestamp() + 1800, 0).unwrap(), Utc, ); @@ -789,7 +789,7 @@ aws_secret_access_key=dummy fn expiration_date_set_expired() { use chrono::{DateTime, NaiveDateTime, SecondsFormat, Utc}; - let now: DateTime = chrono::DateTime::from_utc( + let now: DateTime = DateTime::from_naive_utc_and_offset( NaiveDateTime::from_timestamp_opt(chrono::Local::now().timestamp() - 1800, 0).unwrap(), Utc, ); diff --git a/src/modules/hostname.rs b/src/modules/hostname.rs index 8eec9b5f..d5e967b6 100644 --- a/src/modules/hostname.rs +++ b/src/modules/hostname.rs @@ -23,7 +23,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; } - let os_hostname: OsString = gethostname::gethostname(); + let os_hostname: OsString = whoami::hostname_os(); let host = match os_hostname.into_string() { Ok(host) => host, @@ -87,7 +87,7 @@ mod tests { macro_rules! get_hostname { () => { - if let Ok(hostname) = gethostname::gethostname().into_string() { + if let Ok(hostname) = whoami::hostname_os().into_string() { hostname } else { println!( diff --git a/src/modules/username.rs b/src/modules/username.rs index af3fa6e5..537e552f 100644 --- a/src/modules/username.rs +++ b/src/modules/username.rs @@ -2,21 +2,15 @@ use super::{Context, Module, ModuleConfig}; use crate::configs::username::UsernameConfig; use crate::formatter::StringFormatter; - -#[cfg(not(target_os = "windows"))] -const USERNAME_ENV_VAR: &str = "USER"; - -#[cfg(target_os = "windows")] +#[cfg(test)] const USERNAME_ENV_VAR: &str = "USERNAME"; /// Creates a module with the current user's username -/// -/// Will display the username if any of the following criteria are met: -/// - The current user is root (UID = 0) [1] -/// - The current user isn't the same as the one that is logged in (`$LOGNAME` != `$USER`) [2] -/// - The user is currently connected as an SSH session (`$SSH_CONNECTION`) [3] pub fn module<'a>(context: &'a Context) -> Option> { + #[cfg(test)] let mut username = context.get_env(USERNAME_ENV_VAR)?; + #[cfg(not(test))] + let mut username = whoami::username(); let mut module = context.new_module("username"); let config: UsernameConfig = UsernameConfig::try_load(module.config); @@ -151,8 +145,8 @@ mod tests { let actual = ModuleRenderer::new("username") .env("SSH_CONNECTION", "192.168.223.17 36673 192.168.223.229 22") .collect(); - let expected = None; + let expected = None; assert_eq!(expected, actual); } diff --git a/src/print.rs b/src/print.rs index 742dfdb9..4fcba218 100644 --- a/src/print.rs +++ b/src/print.rs @@ -507,8 +507,10 @@ pub fn preset_command(name: Option, output: Option, list: bool) fn preset_list() -> String { Preset::value_variants() .iter() - .map(|v| format!("{}\n", v.0)) - .collect() + .fold(String::new(), |mut output, b| { + let _ = writeln!(output, "{}", b.0); + output + }) } #[cfg(test)] From 7b217056bdb8dcb5b328b51fa3b68fe837f9fb3c Mon Sep 17 00:00:00 2001 From: Charlotte Thomas Date: Thu, 26 Oct 2023 15:31:16 +0200 Subject: [PATCH 016/651] feat: add typst module Co-authored-by: David Knaack --- .github/config-schema.json | 72 ++++++++++++++ .../public/presets/toml/no-empty-icons.toml | 3 + .../public/presets/toml/no-nerd-font.toml | 3 + .../presets/toml/no-runtime-versions.toml | 3 + .../presets/toml/plain-text-symbols.toml | 3 + docs/config/README.md | 34 +++++++ src/configs/mod.rs | 3 + src/configs/starship_root.rs | 1 + src/configs/typst.rs | 34 +++++++ src/module.rs | 1 + src/modules/mod.rs | 3 + src/modules/typst.rs | 98 +++++++++++++++++++ src/utils.rs | 5 + 13 files changed, 263 insertions(+) create mode 100644 src/configs/typst.rs create mode 100644 src/modules/typst.rs diff --git a/.github/config-schema.json b/.github/config-schema.json index 1f091efb..9931b848 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1671,6 +1671,27 @@ } ] }, + "typst": { + "default": { + "detect_extensions": [ + "typ" + ], + "detect_files": [ + "template.typ" + ], + "detect_folders": [], + "disabled": false, + "format": "via [$symbol($version )]($style)", + "style": "bold #0093A7", + "symbol": "t ", + "version_format": "v${raw}" + }, + "allOf": [ + { + "$ref": "#/definitions/TypstConfig" + } + ] + }, "username": { "default": { "disabled": false, @@ -5709,6 +5730,57 @@ }, "additionalProperties": false }, + "TypstConfig": { + "type": "object", + "properties": { + "format": { + "default": "via [$symbol($version )]($style)", + "type": "string" + }, + "version_format": { + "default": "v${raw}", + "type": "string" + }, + "symbol": { + "default": "t ", + "type": "string" + }, + "style": { + "default": "bold #0093A7", + "type": "string" + }, + "disabled": { + "default": false, + "type": "boolean" + }, + "detect_extensions": { + "default": [ + "typ" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_files": { + "default": [ + "template.typ" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_folders": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "UsernameConfig": { "type": "object", "properties": { diff --git a/docs/.vuepress/public/presets/toml/no-empty-icons.toml b/docs/.vuepress/public/presets/toml/no-empty-icons.toml index eb94f1a3..8917c0a1 100644 --- a/docs/.vuepress/public/presets/toml/no-empty-icons.toml +++ b/docs/.vuepress/public/presets/toml/no-empty-icons.toml @@ -108,6 +108,9 @@ format = '(via [$symbol($version )]($style))' [swift] format = '(via [$symbol($version )]($style))' +[typst] +format = '(via [$symbol($version )]($style))' + [vagrant] format = '(via [$symbol($version )]($style))' diff --git a/docs/.vuepress/public/presets/toml/no-nerd-font.toml b/docs/.vuepress/public/presets/toml/no-nerd-font.toml index a34b3044..3c4da2af 100644 --- a/docs/.vuepress/public/presets/toml/no-nerd-font.toml +++ b/docs/.vuepress/public/presets/toml/no-nerd-font.toml @@ -13,3 +13,6 @@ symbol = "[⬢](bold green) " [pulumi] symbol = "🧊 " + +[typst] +symbol = "t " diff --git a/docs/.vuepress/public/presets/toml/no-runtime-versions.toml b/docs/.vuepress/public/presets/toml/no-runtime-versions.toml index dc573954..a3ee88c8 100644 --- a/docs/.vuepress/public/presets/toml/no-runtime-versions.toml +++ b/docs/.vuepress/public/presets/toml/no-runtime-versions.toml @@ -109,6 +109,9 @@ format = 'via [$symbol]($style)' [solidity] format = 'via [$symbol]($style)' +[typst] +format = 'via [$symbol]($style)' + [swift] format = 'via [$symbol]($style)' diff --git a/docs/.vuepress/public/presets/toml/plain-text-symbols.toml b/docs/.vuepress/public/presets/toml/plain-text-symbols.toml index 32126a01..db0957a1 100644 --- a/docs/.vuepress/public/presets/toml/plain-text-symbols.toml +++ b/docs/.vuepress/public/presets/toml/plain-text-symbols.toml @@ -209,6 +209,9 @@ symbol = "sudo " [swift] symbol = "swift " +[typst] +symbol = "typst " + [terraform] symbol = "terraform " diff --git a/docs/config/README.md b/docs/config/README.md index 55315d93..e200115b 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -323,6 +323,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -4278,6 +4279,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. diff --git a/src/configs/mod.rs b/src/configs/mod.rs index aeb8193f..883055b8 100644 --- a/src/configs/mod.rs +++ b/src/configs/mod.rs @@ -84,6 +84,7 @@ pub mod sudo; pub mod swift; pub mod terraform; pub mod time; +pub mod typst; pub mod username; pub mod v; pub mod vagrant; @@ -269,6 +270,8 @@ pub struct FullConfig<'a> { #[serde(borrow)] time: time::TimeConfig<'a>, #[serde(borrow)] + typst: typst::TypstConfig<'a>, + #[serde(borrow)] username: username::UsernameConfig<'a>, #[serde(borrow)] vagrant: vagrant::VagrantConfig<'a>, diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index 6308d6d9..c93c1543 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -91,6 +91,7 @@ pub const PROMPT_ORDER: &[&str] = &[ "solidity", "swift", "terraform", + "typst", "vlang", "vagrant", "zig", diff --git a/src/configs/typst.rs b/src/configs/typst.rs new file mode 100644 index 00000000..28f4fc62 --- /dev/null +++ b/src/configs/typst.rs @@ -0,0 +1,34 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Deserialize, Serialize)] +#[cfg_attr( + feature = "config-schema", + derive(schemars::JsonSchema), + schemars(deny_unknown_fields) +)] +#[serde(default)] +pub struct TypstConfig<'a> { + pub format: &'a str, + pub version_format: &'a str, + pub symbol: &'a str, + pub style: &'a str, + pub disabled: bool, + pub detect_extensions: Vec<&'a str>, + pub detect_files: Vec<&'a str>, + pub detect_folders: Vec<&'a str>, +} + +impl<'a> Default for TypstConfig<'a> { + fn default() -> Self { + TypstConfig { + format: "via [$symbol($version )]($style)", + version_format: "v${raw}", + symbol: "t ", + style: "bold #0093A7", + disabled: false, + detect_extensions: vec!["typ"], + detect_files: vec!["template.typ"], + detect_folders: vec![], + } + } +} diff --git a/src/module.rs b/src/module.rs index 26d46c97..33f8287b 100644 --- a/src/module.rs +++ b/src/module.rs @@ -90,6 +90,7 @@ pub const ALL_MODULES: &[&str] = &[ "swift", "terraform", "time", + "typst", "username", "vagrant", "vcsh", diff --git a/src/modules/mod.rs b/src/modules/mod.rs index fe4f4230..cc1eec4e 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -89,6 +89,7 @@ mod zig; #[cfg(feature = "battery")] mod battery; +mod typst; #[cfg(feature = "battery")] pub use self::battery::{BatteryInfoProvider, BatteryInfoProviderImpl}; @@ -185,6 +186,7 @@ pub fn handle<'a>(module: &str, context: &'a Context) -> Option> { "sudo" => sudo::module(context), "terraform" => terraform::module(context), "time" => time::module(context), + "typst" => typst::module(context), "crystal" => crystal::module(context), "username" => username::module(context), "vlang" => vlang::module(context), @@ -303,6 +305,7 @@ pub fn description(module: &str) -> &'static str { "swift" => "The currently installed version of Swift", "terraform" => "The currently selected terraform workspace and version", "time" => "The current local time", + "typst" => "The current installed version of typst", "username" => "The active user's username", "vagrant" => "The currently installed version of Vagrant", "vcsh" => "The currently active VCSH repository", diff --git a/src/modules/typst.rs b/src/modules/typst.rs new file mode 100644 index 00000000..a1c0ba4a --- /dev/null +++ b/src/modules/typst.rs @@ -0,0 +1,98 @@ +use super::{Context, Module, ModuleConfig}; + +use crate::configs::typst::TypstConfig; +use crate::formatter::{StringFormatter, VersionFormatter}; + +/// Creates a module with the current Typst version +pub fn module<'a>(context: &'a Context) -> Option> { + let mut module = context.new_module("typst"); + let config = TypstConfig::try_load(module.config); + + let is_typst_project = context + .try_begin_scan()? + .set_files(&config.detect_files) + .set_extensions(&config.detect_extensions) + .set_folders(&config.detect_folders) + .is_match(); + + if !is_typst_project { + return None; + } + + let parsed = StringFormatter::new(config.format).and_then(|formatter| { + formatter + .map_meta(|var, _| match var { + "symbol" => Some(config.symbol), + _ => None, + }) + .map_style(|variable| match variable { + "style" => Some(Ok(config.style)), + _ => None, + }) + .map(|variable| match variable { + "version" => { + let version = get_typst_config(context)?; + VersionFormatter::format_module_version( + module.get_name(), + &version, + config.version_format, + ) + .map(Ok) + } + _ => None, + }) + .parse(None, Some(context)) + }); + + module.set_segments(match parsed { + Ok(segments) => segments, + Err(error) => { + log::warn!("Error in module `typst`:\n{}", error); + return None; + } + }); + + Some(module) +} + +fn get_typst_config(context: &Context) -> Option { + context + .exec_cmd("typst", &["--version"])? + .stdout + .trim() + .strip_prefix("typst ") + .and_then(|version| version.split_whitespace().next().map(ToOwned::to_owned)) +} + +#[cfg(test)] +mod tests { + use crate::test::ModuleRenderer; + use nu_ansi_term::Color; + use std::fs::File; + use std::io; + #[test] + fn read_typst_not_present() -> io::Result<()> { + let dir = tempfile::tempdir()?; + + let actual = ModuleRenderer::new("typst").path(dir.path()).collect(); + + let expected = None; + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn read_typst_present() -> io::Result<()> { + let dir = tempfile::tempdir()?; + + File::create(dir.path().join("test.typ"))?.sync_all()?; + + let actual = ModuleRenderer::new("typst").path(dir.path()).collect(); + let expected = Some(format!( + "via {}", + Color::Rgb(0, 147, 167).bold().paint("t v0.10 ") + )); + assert_eq!(expected, actual); + dir.close() + } +} diff --git a/src/utils.rs b/src/utils.rs index d4d68a81..0459f5f7 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -341,6 +341,11 @@ WebAssembly: unavailable stdout: String::from("default\n"), stderr: String::default(), }), + "typst --version" => Some(CommandOutput { + stdout: String::from("typst 0.10 (360cc9b9)"), + stderr: String::default(), + }), + "esy ocaml -vnum" => Some(CommandOutput { stdout: String::from("4.08.1\n"), stderr: String::default(), From f1f4ea2d90ae063a2af7ec733018a7cc9b6fa071 Mon Sep 17 00:00:00 2001 From: Frederik Banning <65158285+fbanning@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:10:47 +0100 Subject: [PATCH 017/651] docs: Include openSUSE in installation instructions Co-authored-by: David Knaack --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1205db8f..2c87fd81 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,7 @@ Alternatively, install Starship using any of the following package managers: | Gentoo | [Gentoo Packages] | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | | NixOS | [nixpkgs] | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS] | `zypper in starship` | | Void Linux | [Void Linux Packages] | `xbps-install -S starship` | @@ -458,6 +459,7 @@ This project is [ISC](https://github.com/starship/starship/blob/master/LICENSE) [homebrew]: https://formulae.brew.sh/formula/starship [macports]: https://ports.macports.org/port/starship [nixpkgs]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix +[OSS]: https://software.opensuse.org/package/starship [pkgsrc]: https://pkgsrc.se/shells/starship [scoop]: https://github.com/ScoopInstaller/Main/blob/master/bucket/starship.json [termux]: https://github.com/termux/termux-packages/tree/master/packages/starship From 3b9e87229b86a050f40a1e58fc2e0d0328f1fbad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 22:37:21 +0000 Subject: [PATCH 018/651] build(deps): update rust crate schemars to 0.8.16 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 984d2573..2c9a02cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2552,9 +2552,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7b0ce13155372a76ee2e1c5ffba1fe61ede73fbea5630d61eee6fac4929c0c" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", @@ -2566,9 +2566,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e85e2a16b12bdb763244c69ab79363d71db2b4b918a2def53f80b02e0574b13c" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 68904555..092cdec9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -96,7 +96,7 @@ shell-words = "1.1.0" whoami = { version = "1.4.1", default-features = false } [dependencies.schemars] -version = "0.8.15" +version = "0.8.16" optional = true features = ["preserve_order", "indexmap2"] From ba9f209a5fa739e6d183d896ed22550fb6a38f34 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 18:55:31 +0000 Subject: [PATCH 019/651] build(deps): update rust crate notify-rust to 4.10.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c9a02cd..5f4aaaaf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1944,9 +1944,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "notify-rust" -version = "4.9.0" +version = "4.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7b75c8958cb2eab3451538b32db8a7b74006abc33eb2e6a9a56d21e4775c2b" +checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" dependencies = [ "log", "mac-notification-sys", diff --git a/Cargo.toml b/Cargo.toml index 092cdec9..68f6aac2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,7 @@ indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 -notify-rust = { version = "4.9.0", optional = true } +notify-rust = { version = "4.10.0", optional = true } nu-ansi-term = "0.49.0" once_cell = "1.18.0" open = "5.0.0" From 686bda1706e5b409129e6694639477a0f8a3f01b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Nov 2023 05:46:07 +0000 Subject: [PATCH 020/651] build(deps): update rust crate serde to 1.0.193 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5f4aaaaf..40de7d58 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2608,18 +2608,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 68f6aac2..da7bce1f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.20" -serde = { version = "1.0.192", features = ["derive"] } +serde = { version = "1.0.193", features = ["derive"] } serde_json = "1.0.108" sha1 = "0.10.6" shadow-rs = { version = "0.24.1", default-features = false } From e19aa6e7f3767cb2c4ef73f8f3a63abf50f19e6e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 07:03:48 +0000 Subject: [PATCH 021/651] build(deps): update giraffate/clippy-action digest to 94e9bd8 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 715093d4..12c35ae0 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -54,7 +54,7 @@ jobs: uses: Swatinem/rust-cache@v2 - name: Build | Lint - uses: giraffate/clippy-action@871cc4173f2594435c7ea6b0bce499cf6c2164a1 + uses: giraffate/clippy-action@94e9bd8deab2618756ec5380f12eb35bcb0a88ca # Ensure that the project could be successfully compiled cargo_check: From de1d6e3183fdd69af89a7e42bd5d4fd269580733 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 23:01:18 +0000 Subject: [PATCH 022/651] build(deps): update rust crate open to 5.0.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 40de7d58..d64a7d28 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2036,9 +2036,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "5.0.0" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfabf1927dce4d6fdf563d63328a0a506101ced3ec780ca2135747336c98cef8" +checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349" dependencies = [ "is-wsl", "libc", diff --git a/Cargo.toml b/Cargo.toml index da7bce1f..5b13c3e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,7 +57,7 @@ log = { version = "0.4.20", features = ["std"] } notify-rust = { version = "4.10.0", optional = true } nu-ansi-term = "0.49.0" once_cell = "1.18.0" -open = "5.0.0" +open = "5.0.1" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" From cb6df1d142a4ef345afd1867db9f465b4c11a97a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 Nov 2023 06:36:41 +0000 Subject: [PATCH 023/651] build(deps): update xalvarez/prevent-file-change-action action to v1.5.1 --- .github/workflows/format-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/format-workflow.yml b/.github/workflows/format-workflow.yml index 67b07160..c11d3ab0 100644 --- a/.github/workflows/format-workflow.yml +++ b/.github/workflows/format-workflow.yml @@ -35,7 +35,7 @@ jobs: if: ${{ github.event_name == 'pull_request' }} steps: - name: Prevent File Change - uses: xalvarez/prevent-file-change-action@v1.4.0 + uses: xalvarez/prevent-file-change-action@v1.5.1 if: ${{ github.event.pull_request.head.ref != 'i18n_master' }} with: githubToken: ${{ secrets.GITHUB_TOKEN }} From d7a34b45f88ced63bd79a582c14a6b2f8ebd9544 Mon Sep 17 00:00:00 2001 From: Gilbert Sanchez Date: Sat, 25 Nov 2023 05:06:03 -0800 Subject: [PATCH 024/651] feat(shell): allow distinguishing between pwsh and powershell (#5478) * Distinguish between pwsh and powershell Co-authored-by: David Knaack --- .github/config-schema.json | 6 +++++ docs/config/README.md | 33 ++++++++++++++------------- src/configs/shell.rs | 3 +++ src/context.rs | 4 +++- src/modules/shell.rs | 46 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 17 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 9931b848..a01d83c0 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -5311,6 +5311,12 @@ "default": "psh", "type": "string" }, + "pwsh_indicator": { + "type": [ + "string", + "null" + ] + }, "ion_indicator": { "default": "ion", "type": "string" diff --git a/docs/config/README.md b/docs/config/README.md index e200115b..c267a37d 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -3817,22 +3817,23 @@ To enable it, set `disabled` to `false` in your configuration file. ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables diff --git a/src/configs/shell.rs b/src/configs/shell.rs index 540ea8e3..9d0bd3aa 100644 --- a/src/configs/shell.rs +++ b/src/configs/shell.rs @@ -13,6 +13,8 @@ pub struct ShellConfig<'a> { pub fish_indicator: &'a str, pub zsh_indicator: &'a str, pub powershell_indicator: &'a str, + #[serde(skip_serializing_if = "Option::is_none")] + pub pwsh_indicator: Option<&'a str>, pub ion_indicator: &'a str, pub elvish_indicator: &'a str, pub tcsh_indicator: &'a str, @@ -32,6 +34,7 @@ impl<'a> Default for ShellConfig<'a> { fish_indicator: "fsh", zsh_indicator: "zsh", powershell_indicator: "psh", + pwsh_indicator: None, ion_indicator: "ion", elvish_indicator: "esh", tcsh_indicator: "tsh", diff --git a/src/context.rs b/src/context.rs index 83af209a..0a498c99 100644 --- a/src/context.rs +++ b/src/context.rs @@ -372,7 +372,8 @@ impl<'a> Context<'a> { "bash" => Shell::Bash, "fish" => Shell::Fish, "ion" => Shell::Ion, - "powershell" | "pwsh" => Shell::PowerShell, + "pwsh" => Shell::Pwsh, + "powershell" => Shell::PowerShell, "zsh" => Shell::Zsh, "elvish" => Shell::Elvish, "tcsh" => Shell::Tcsh, @@ -810,6 +811,7 @@ pub enum Shell { Bash, Fish, Ion, + Pwsh, PowerShell, Zsh, Elvish, diff --git a/src/modules/shell.rs b/src/modules/shell.rs index c9b6df15..98502a26 100644 --- a/src/modules/shell.rs +++ b/src/modules/shell.rs @@ -20,6 +20,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { Shell::Bash => Some(config.bash_indicator), Shell::Fish => Some(config.fish_indicator), Shell::Zsh => Some(config.zsh_indicator), + Shell::Pwsh => config.pwsh_indicator.or(Some(config.powershell_indicator)), Shell::PowerShell => Some(config.powershell_indicator), Shell::Ion => Some(config.ion_indicator), Shell::Elvish => Some(config.elvish_indicator), @@ -40,6 +41,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { "fish_indicator" => Some(Ok(config.fish_indicator)), "zsh_indicator" => Some(Ok(config.zsh_indicator)), "powershell_indicator" => Some(Ok(config.powershell_indicator)), + "pwsh_indicator" => config.pwsh_indicator.map(Ok), "ion_indicator" => Some(Ok(config.ion_indicator)), "elvish_indicator" => Some(Ok(config.elvish_indicator)), "tcsh_indicator" => Some(Ok(config.tcsh_indicator)), @@ -200,6 +202,50 @@ mod tests { assert_eq!(expected, actual); } + #[test] + fn test_pwsh_default_format() { + let expected = Some(format!("{} ", Color::White.bold().paint("psh"))); + let actual = ModuleRenderer::new("shell") + .shell(Shell::Pwsh) + .config(toml::toml! { + [shell] + disabled = false + }) + .collect(); + + assert_eq!(expected, actual); + } + + #[test] + fn test_pwsh_custom_format() { + let expected = Some(format!("{} ", Color::Cyan.bold().paint("pwsh"))); + let actual = ModuleRenderer::new("shell") + .shell(Shell::Pwsh) + .config(toml::toml! { + [shell] + pwsh_indicator = "[pwsh](bold cyan)" + disabled = false + }) + .collect(); + + assert_eq!(expected, actual); + } + + #[test] + fn test_pwsh_custom_format_fallback() { + let expected = Some(format!("{} ", Color::Cyan.bold().paint("pwsh"))); + let actual = ModuleRenderer::new("shell") + .shell(Shell::Pwsh) + .config(toml::toml! { + [shell] + powershell_indicator = "[pwsh](bold cyan)" + disabled = false + }) + .collect(); + + assert_eq!(expected, actual); + } + #[test] fn test_ion_default_format() { let expected = Some(format!("{} ", Color::White.bold().paint("ion"))); From ec16f194649d0af52099d8a2a1880569eb524939 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 02:22:00 +0000 Subject: [PATCH 025/651] build(deps): update dprint plugins --- .dprint.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.dprint.json b/.dprint.json index abb40746..b5d9402f 100644 --- a/.dprint.json +++ b/.dprint.json @@ -41,9 +41,9 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.3/plugin.wasm", - "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.0/plugin.wasm", - "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.2/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.6/plugin.wasm", + "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", + "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.5.4/plugin.wasm" ] } From 33d447a8309661f14d816e5c71a9bbe229fd0ff8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 19:29:13 +0000 Subject: [PATCH 026/651] build(deps): update rust crate clap to 4.4.9 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d64a7d28..417b6fc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.8" +version = "4.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" +checksum = "46ca43acc1b21c6cc2d1d3129c19e323a613935b5bc28fb3b33b5b2e5fb00030" dependencies = [ "clap_builder", "clap_derive", @@ -406,9 +406,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.8" +version = "4.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" +checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 5b13c3e4..c3a3d40d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.8", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.9", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.4" dirs-next = "2.0.0" dunce = "1.0.4" From bc3eb031c2f3e41bb49b09a702ec6febc7fbc947 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 28 Nov 2023 06:12:46 +0000 Subject: [PATCH 027/651] build(deps): update rust crate clap to 4.4.10 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 417b6fc2..6f1931f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.9" +version = "4.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ca43acc1b21c6cc2d1d3129c19e323a613935b5bc28fb3b33b5b2e5fb00030" +checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" dependencies = [ "clap_builder", "clap_derive", diff --git a/Cargo.toml b/Cargo.toml index c3a3d40d..aea18683 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.9", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.10", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.4" dirs-next = "2.0.0" dunce = "1.0.4" From 5267c464eb5e4b23e44cdb7c56919991f4f67ae3 Mon Sep 17 00:00:00 2001 From: Jan Gorecki Date: Wed, 29 Nov 2023 07:25:40 +0100 Subject: [PATCH 028/651] feat: R lang packages version, remove .Rprofile from rlang detection (#5588) * do not detect R for .Rprofile files, closes #2817 * get R package version, #5586 * update schema * fix and simplify regex for rlang package version * attempt to fix regex * proper detect R packages, closes #5590 * reduce diff vs master branch --- .github/config-schema.json | 4 ++-- src/configs/rlang.rs | 2 +- src/modules/package.rs | 21 +++++++++++++++++++++ src/modules/rlang.rs | 4 ++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index a01d83c0..22b938e0 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1397,7 +1397,7 @@ "Rsx" ], "detect_files": [ - ".Rprofile" + "DESCRIPTION" ], "detect_folders": [ ".Rproj.user" @@ -5100,7 +5100,7 @@ }, "detect_files": { "default": [ - ".Rprofile" + "DESCRIPTION" ], "type": "array", "items": { diff --git a/src/configs/rlang.rs b/src/configs/rlang.rs index 3982b723..c759f570 100644 --- a/src/configs/rlang.rs +++ b/src/configs/rlang.rs @@ -27,7 +27,7 @@ impl<'a> Default for RLangConfig<'a> { symbol: "📐 ", disabled: false, detect_extensions: vec!["R", "Rd", "Rmd", "Rproj", "Rsx"], - detect_files: vec![".Rprofile"], + detect_files: vec!["DESCRIPTION"], detect_folders: vec![".Rproj.user"], } } diff --git a/src/modules/package.rs b/src/modules/package.rs index 4c9f20b1..f72cb059 100644 --- a/src/modules/package.rs +++ b/src/modules/package.rs @@ -310,6 +310,13 @@ fn get_dart_pub_version(context: &Context, config: &PackageConfig) -> Option Option { + let file_contents = context.read_file_from_pwd("DESCRIPTION")?; + let re = Regex::new(r"(?m)^Version:\s*(?P.*$)").unwrap(); + let caps = re.captures(&file_contents)?; + format_version(&caps["version"], config.version_format) +} + fn get_version(context: &Context, config: &PackageConfig) -> Option { let package_version_fn: Vec Option> = vec![ get_cargo_version, @@ -330,6 +337,7 @@ fn get_version(context: &Context, config: &PackageConfig) -> Option { get_sbt_version, get_daml_project_version, get_dart_pub_version, + get_rlang_version, ]; package_version_fn.iter().find_map(|f| f(context, config)) @@ -1402,6 +1410,19 @@ environment: project_dir.close() } + #[test] + fn test_extract_rlang_version() -> io::Result<()> { + let config_name = "DESCRIPTION"; + let config_content = " +Package: starship +Version: 1.0.0 +Title: Starship +"; + let project_dir = create_project_dir()?; + fill_config(&project_dir, config_name, Some(config_content))?; + expect_output(&project_dir, Some("v1.0.0"), None); + project_dir.close() + } fn create_project_dir() -> io::Result { tempfile::tempdir() } diff --git a/src/modules/rlang.rs b/src/modules/rlang.rs index a3902497..5620e025 100644 --- a/src/modules/rlang.rs +++ b/src/modules/rlang.rs @@ -133,9 +133,9 @@ https://www.gnu.org/licenses/."#; } #[test] - fn folder_with_rprofile_files() -> io::Result<()> { + fn folder_with_description_files() -> io::Result<()> { let dir = tempfile::tempdir()?; - File::create(dir.path().join(".Rprofile"))?.sync_all()?; + File::create(dir.path().join("DESCRIPTION"))?.sync_all()?; check_r_render(&dir); dir.close() } From ac4a83910357d69950ca304a3fb41d1d39bc3592 Mon Sep 17 00:00:00 2001 From: William Howard Date: Wed, 29 Nov 2023 06:26:35 +0000 Subject: [PATCH 029/651] perf(git_status): avoid running in bare repos (#5581) * fix: git_status bare repo handling * perform the git_status bare repo check earlier * Adjusted test --- src/context.rs | 5 +++++ src/modules/git_status.rs | 20 ++++++++++++++++++++ src/test/mod.rs | 11 +++++++++++ 3 files changed, 36 insertions(+) diff --git a/src/context.rs b/src/context.rs index 0a498c99..56074469 100644 --- a/src/context.rs +++ b/src/context.rs @@ -8,6 +8,7 @@ use crate::modules; use crate::utils; use clap::Parser; use gix::{ + repository::Kind, sec::{self as git_sec, trust::DefaultForLevel}, state as git_state, Repository, ThreadSafeRepository, }; @@ -351,6 +352,7 @@ impl<'a> Context<'a> { state: repository.state(), remote, fs_monitor_value_is_true, + kind: repository.kind(), }) }) } @@ -641,6 +643,9 @@ pub struct Repo { /// Contains `true` if the value of `core.fsmonitor` is set to `true`. /// If not `true`, `fsmonitor` is explicitly disabled in git commands. fs_monitor_value_is_true: bool, + + // Kind of repository, work tree or bare + pub kind: Kind, } impl Repo { diff --git a/src/modules/git_status.rs b/src/modules/git_status.rs index e54ba700..614e6f66 100644 --- a/src/modules/git_status.rs +++ b/src/modules/git_status.rs @@ -34,6 +34,11 @@ pub fn module<'a>(context: &'a Context) -> Option> { // Return None if not in git repository let repo = context.get_repo().ok()?; + if repo.kind.is_bare() { + log::debug!("This is a bare repository, git_status is not applicable"); + return None; + } + if let Some(git_status) = git_status_wsl(context, &config) { if git_status.is_empty() { return None; @@ -1166,6 +1171,21 @@ mod tests { repo_dir.close() } + #[test] + fn doesnt_generate_git_status_for_bare_repo() -> io::Result<()> { + let repo_dir = fixture_repo(FixtureProvider::GitBare)?; + + create_added(repo_dir.path())?; + + let actual = ModuleRenderer::new("git_status") + .path(repo_dir.path()) + .collect(); + + assert_eq!(None, actual); + + repo_dir.close() + } + fn ahead(repo_dir: &Path) -> io::Result<()> { File::create(repo_dir.join("readme.md"))?.sync_all()?; diff --git a/src/test/mod.rs b/src/test/mod.rs index dd26ea82..9cbb749d 100644 --- a/src/test/mod.rs +++ b/src/test/mod.rs @@ -166,6 +166,7 @@ impl<'a> ModuleRenderer<'a> { pub enum FixtureProvider { Fossil, Git, + GitBare, Hg, Pijul, } @@ -229,6 +230,16 @@ pub fn fixture_repo(provider: FixtureProvider) -> io::Result { Ok(path) } + FixtureProvider::GitBare => { + let path = tempfile::tempdir()?; + gix::ThreadSafeRepository::init( + &path, + gix::create::Kind::Bare, + gix::create::Options::default(), + ) + .map_err(|err| io::Error::new(io::ErrorKind::Other, err))?; + Ok(path) + } FixtureProvider::Hg => { let path = tempfile::tempdir()?; From 64ca07910df09d614a24d15a54c9cc3a4385799b Mon Sep 17 00:00:00 2001 From: David Knaack Date: Wed, 29 Nov 2023 07:27:47 +0100 Subject: [PATCH 030/651] chore: fix rust 1.74 clippy lints (#5578) --- src/modules/c.rs | 2 +- src/modules/pulumi.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/c.rs b/src/modules/c.rs index b8aa3b0e..3e520f4d 100644 --- a/src/modules/c.rs +++ b/src/modules/c.rs @@ -47,7 +47,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { } else { return None; }; - Some(c_compiler).map(Cow::Borrowed).map(Ok) + Some(Ok(Cow::Borrowed(c_compiler))) } "version" => { let c_compiler_info = &c_compiler_info.deref().as_ref()?.stdout; diff --git a/src/modules/pulumi.rs b/src/modules/pulumi.rs index 09301449..6df36dde 100644 --- a/src/modules/pulumi.rs +++ b/src/modules/pulumi.rs @@ -285,8 +285,9 @@ mod tests { let project_file = PathBuf::from("/hello/Pulumi.yaml"); assert_eq!( get_pulumi_workspace(&context, name, &project_file), - Some("/home/sweet/home/.pulumi/workspaces/foobar-test-workspace.json") - .map(PathBuf::from) + Some(PathBuf::from( + "/home/sweet/home/.pulumi/workspaces/foobar-test-workspace.json" + )) ); } From 4a3d47e4663bd07e8a21d5e9db3795f40e3e9618 Mon Sep 17 00:00:00 2001 From: PangLAN <102520124+pang-lan@users.noreply.github.com> Date: Sun, 3 Dec 2023 19:16:48 +0800 Subject: [PATCH 031/651] docs: add more symbols to nerd-font-symbols preset (#5606) docs: Add more language nerd font icon --- .../presets/toml/nerd-font-symbols.toml | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/docs/.vuepress/public/presets/toml/nerd-font-symbols.toml b/docs/.vuepress/public/presets/toml/nerd-font-symbols.toml index e791d29a..540a4fc3 100644 --- a/docs/.vuepress/public/presets/toml/nerd-font-symbols.toml +++ b/docs/.vuepress/public/presets/toml/nerd-font-symbols.toml @@ -10,6 +10,9 @@ symbol = " " [conda] symbol = " " +[crystal] +symbol = " " + [dart] symbol = " " @@ -20,11 +23,14 @@ read_only = " 󰌾" symbol = " " [elixir] -symbol = " " +symbol = " " [elm] symbol = " " +[fennel] +symbol = " " + [fossil_branch] symbol = " " @@ -55,6 +61,9 @@ symbol = " " [julia] symbol = " " +[kotlin] +symbol = " " + [lua] symbol = " " @@ -73,6 +82,9 @@ symbol = " " [nodejs] symbol = " " +[ocaml] +symbol = " " + [os.symbols] Alpaquita = " " Alpine = " " @@ -117,6 +129,12 @@ Windows = "󰍲 " [package] symbol = "󰏗 " +[perl] +symbol = " " + +[php] +symbol = " " + [pijul_channel] symbol = " " @@ -134,3 +152,9 @@ symbol = " " [scala] symbol = " " + +[swift] +symbol = " " + +[zig] +symbol = " " From d66d50d6c5dc048d86e741b485e5b965608d3efc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 20:40:48 +0000 Subject: [PATCH 032/651] build(deps): update rust crate clap to 4.4.11 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f1931f1..ed7907ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,9 +396,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.10" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" dependencies = [ "clap_builder", "clap_derive", @@ -406,9 +406,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index aea18683..60f5ee89 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.10", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.11", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.4" dirs-next = "2.0.0" dunce = "1.0.4" From 97e2d445ad7ea2eda7a8dfdf2cc097f94f62e271 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 16:42:19 +0100 Subject: [PATCH 033/651] build(deps): update rust crate versions to v6 (#5620) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ed7907ac..c7d95d53 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1665,9 +1665,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] @@ -3314,11 +3314,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "versions" -version = "5.0.1" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c73a36bc44e3039f51fbee93e39f41225f6b17b380eb70cc2aab942df06b34dd" +checksum = "d7c271c81503258e3850c9d0f0d279d4ce9458d3388ef9eaa081b10d542182c3" dependencies = [ - "itertools 0.11.0", + "itertools 0.12.0", "nom 7.1.3", ] diff --git a/Cargo.toml b/Cargo.toml index 60f5ee89..55708b12 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,7 +84,7 @@ toml_edit = "0.21.0" unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" -versions = "5.0.1" +versions = "6.0.0" which = "5.0.0" yaml-rust = "0.4.5" From 39dc74729eb3e816d74b08f71648be9bd1c25287 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 18:16:35 +0000 Subject: [PATCH 034/651] build(deps): update gitoxide crates --- Cargo.lock | 139 +++++++++++++++++++++++++++-------------------------- Cargo.toml | 4 +- 2 files changed, 73 insertions(+), 70 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7d95d53..4dc8207b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1007,9 +1007,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.55.2" +version = "0.56.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "002667cd1ebb789313d0d0afe3d23b2821cf3b0e91605095f0e6d8751f0ceeea" +checksum = "5b0dcdc9c60d66535897fa40a7ea2a635e72f99456b1d9ae86b7e170e80618cb" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1049,9 +1049,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "948a5f9e43559d16faf583694f1c742eb401ce24ce8e6f2238caedea7486433c" +checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417" dependencies = [ "bstr", "btoi", @@ -1063,27 +1063,27 @@ dependencies = [ [[package]] name = "gix-bitmap" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ccab4bc576844ddb51b78d81b4a42d73e6229660fa614dfc3d3999c874d1959" +checksum = "d49e1a13a30d3f88be4bceae184dd13a2d3fb9ffa7515f7ed7ae771b857f4916" dependencies = [ "thiserror", ] [[package]] name = "gix-chunk" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b42ea64420f7994000130328f3c7a2038f639120518870436d31b8bde704493" +checksum = "d411ecd9b558b0c20b3252b7e409eec48eabc41d18324954fe526bac6e2db55f" dependencies = [ "thiserror", ] [[package]] name = "gix-commitgraph" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8bc78b1a6328fa6d8b3a53b6c73997af37fd6bfc1d6c49f149e63bda5cbb36" +checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36" dependencies = [ "bstr", "gix-chunk", @@ -1095,9 +1095,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cae98c6b4c66c09379bc35274b172587d6b0ac369a416c39128ad8c6454f9bb" +checksum = "ada0e0b904b17a3f2636b70a33e2c8b075b8eb947db80f6c6e94549f2d5b78d1" dependencies = [ "bstr", "gix-config-value", @@ -1116,9 +1116,9 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea7505b97f4d8e7933e29735a568ba2f86d8de466669d9f0e8321384f9972f47" +checksum = "6419db582ea84dfb58c7e7b0af7fd62c808aa14954af2936a33f89b0f4ed018e" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1129,9 +1129,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7df669639582dc7c02737642f76890b03b5544e141caba68a7d6b4eb551e0d" +checksum = "468dfbe411f335f01525a1352271727f8e7772075a93fa747260f502086b30be" dependencies = [ "bstr", "itoa", @@ -1141,10 +1141,11 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554" +checksum = "8119a985887cfe68f4bdf92e51bd64bc758a73882d82fcfc03ebcb164441c85d" dependencies = [ + "bstr", "gix-hash", "gix-object", "thiserror", @@ -1152,9 +1153,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45d5cf0321178883e38705ab2b098f625d609a7d4c391b33ac952eff2c490f2" +checksum = "6fad89416ebe0b3b7df78464124e2a02417b6cd3743d48ad93df86f4d2929c07" dependencies = [ "bstr", "dunce", @@ -1167,9 +1168,9 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.36.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f4365ba17c4f218d7fd9ec102b8d2d3cb0ca200a835e81151ace7778aec827" +checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2" dependencies = [ "crc32fast", "crossbeam-channel", @@ -1189,18 +1190,18 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd171c0cae97cd0dc57e7b4601cb1ebf596450e263ef3c02be9107272c877bd" +checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107" dependencies = [ "gix-features", ] [[package]] name = "gix-glob" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fac08925dbc14d414bd02eb45ffb4cecd912d1fce3883f867bd0103c192d3e4" +checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1210,9 +1211,9 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1884c7b41ea0875217c1be9ce91322f90bde433e91d374d0e1276073a51ccc60" +checksum = "99c1e554a87759e672c7d2e37211e761aa390c61ffcd3753a57c51173143f3cb" dependencies = [ "faster-hex", "thiserror", @@ -1220,9 +1221,9 @@ dependencies = [ [[package]] name = "gix-hashtable" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "409268480841ad008e81c17ca5a293393fbf9f2b6c2f85b8ab9de1f0c5176a16" +checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca" dependencies = [ "gix-hash", "hashbrown 0.14.2", @@ -1231,9 +1232,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83a4fcc121b2f2e109088f677f89f85e7a8ebf39e8e6659c0ae54d4283b1650" +checksum = "65ce8d03ec25de952be7d2a9adce2a4c2cb8f7fc2d4c25be91301be9707f380b" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1247,7 +1248,9 @@ dependencies = [ "gix-object", "gix-traverse", "itoa", + "libc", "memmap2", + "rustix 0.38.21", "smallvec", "thiserror", ] @@ -1265,9 +1268,9 @@ dependencies = [ [[package]] name = "gix-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d8acb5ee668d55f0f2d19a320a3f9ef67a6999ad483e11135abcc2464ed18b6" +checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae" dependencies = [ "proc-macro2", "quote", @@ -1276,9 +1279,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51" +checksum = "febf79c5825720c1c63fe974c7bbe695d0cb54aabad73f45671c60ce0e501e33" dependencies = [ "bstr", "btoi", @@ -1295,9 +1298,9 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.54.0" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b" +checksum = "1fae5f971540c99c6ecc8d4368ecc9d18a9dc8b9391025c68c4399747dc93bac" dependencies = [ "arc-swap", "gix-date", @@ -1314,9 +1317,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.44.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3" +checksum = "4569491c92446fddf373456ff360aff9a9effd627b40a70f2d7914dcd75a3205" dependencies = [ "clru", "gix-chunk", @@ -1335,9 +1338,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1d370115171e3ae03c5c6d4f7d096f2981a40ddccb98dfd704c773530ba73b" +checksum = "d86d6fac2fabe07b67b7835f46d07571f68b11aa1aaecae94fe722ea4ef305e1" dependencies = [ "bstr", "gix-trace", @@ -1348,9 +1351,9 @@ dependencies = [ [[package]] name = "gix-quote" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475c86a97dd0127ba4465fbb239abac9ea10e68301470c9791a6dd5351cdc905" +checksum = "4f84845efa535468bc79c5a87b9d29219f1da0313c8ecf0365a5daa7e72786f2" dependencies = [ "bstr", "btoi", @@ -1359,9 +1362,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec2f6d07ac88d2fb8007ee3fa3e801856fb9d82e7366ec0ca332eb2c9d74a52" +checksum = "1ac23ed741583c792f573c028785db683496a6dfcd672ec701ee54ba6a77e1ff" dependencies = [ "gix-actor", "gix-date", @@ -1380,9 +1383,9 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb0974cc41dbdb43a180c7f67aa481e1c1e160fcfa8f4a55291fd1126c1a6e7" +checksum = "76d9d3b82e1ee78fc0dc1c37ea5ea76c2dbc73f407db155f0dfcea285e583bee" dependencies = [ "bstr", "gix-hash", @@ -1394,9 +1397,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca97ac73459a7f3766aa4a5638a6e37d56d4c7962bc1986fbaf4883d0772588" +checksum = "fe5dd51710ce5434bc315ea30394fab483c5377276494edd79222b321a5a9544" dependencies = [ "bstr", "gix-date", @@ -1410,9 +1413,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0" +checksum = "69d4ed2493ca94a475fdf147138e1ef8bab3b6ebb56abf3d9bda1c05372ec1dd" dependencies = [ "gix-commitgraph", "gix-date", @@ -1425,9 +1428,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b9542ac025a8c02ed5d17b3fc031a111a384e859d0be3532ec4d58c40a0f28" +checksum = "a36ea2c5907d64a9b4b5d3cc9f430e6c30f0509646b5e38eb275ca57c5bf29e2" dependencies = [ "bitflags 2.4.1", "gix-path", @@ -1450,15 +1453,15 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836" +checksum = "b686a35799b53a9825575ca3f06481d0a053a409c4d97ffcf5ddd67a8760b497" [[package]] name = "gix-traverse" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a" +checksum = "df2112088122a0206592c84fbd42020db63b2ccaed66a0293779f2e5fbf80474" dependencies = [ "gix-commitgraph", "gix-date", @@ -1472,9 +1475,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.25.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1b9ac8ed32ad45f9fc6c5f8c0be2ed911e544a5a19afd62d95d524ebaa95671" +checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005" dependencies = [ "bstr", "gix-features", @@ -1486,18 +1489,18 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f" +checksum = "9f82c41937f00e15a1f6cb0b55307f0ca1f77f4407ff2bf440be35aa688c6a3e" dependencies = [ "fastrand 2.0.1", ] [[package]] name = "gix-validate" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05cab2b03a45b866156e052aa38619f4ece4adcb2f79978bfc249bc3b21b8c5" +checksum = "75b7d8e4274be69f284bbc7e6bb2ccf7065dbcdeba22d8c549f2451ae426883f" dependencies = [ "bstr", "thiserror", @@ -1820,9 +1823,9 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" +checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" dependencies = [ "libc", ] @@ -3553,9 +3556,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index 55708b12..2db4bd67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,8 +48,8 @@ clap_complete = "4.4.4" dirs-next = "2.0.0" dunce = "1.0.4" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.55.2", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.36.0", optional = true } +gix = { version = "0.56.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix-features = { version = "0.36.1", optional = true } indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix From 034ebd3ce87ebab34523bdd9c0fa9d3c7a3bf9ec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:07:58 +0000 Subject: [PATCH 035/651] build(deps): update rust crate once_cell to 1.19.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4dc8207b..d750a076 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2027,9 +2027,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" diff --git a/Cargo.toml b/Cargo.toml index 2db4bd67..f0c8e192 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,7 +56,7 @@ log = { version = "0.4.20", features = ["std"] } # see: https://github.com/NixOS/nixpkgs/issues/160876 notify-rust = { version = "4.10.0", optional = true } nu-ansi-term = "0.49.0" -once_cell = "1.18.0" +once_cell = "1.19.0" open = "5.0.1" # update os module config and tests when upgrading os_info os_info = "3.7.0" From a33e878fc2a5d29e49c02b5df7ac7a18122ffee7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:51:07 +0000 Subject: [PATCH 036/651] build(deps): update rust crate shadow-rs to 0.25.0 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d750a076..19a332aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2724,9 +2724,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9198caff1c94f1a5df6664bddbc379896b51b98a55b0b3fedcb23078fe00c77" +checksum = "615d846f7174a0850dca101bca72f6913e3376a64c5fda2b965d7fc3d1ff60cb" dependencies = [ "const_format", "is_debug", diff --git a/Cargo.toml b/Cargo.toml index f0c8e192..3f29842e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,7 +72,7 @@ semver = "1.0.20" serde = { version = "1.0.193", features = ["derive"] } serde_json = "1.0.108" sha1 = "0.10.6" -shadow-rs = { version = "0.24.1", default-features = false } +shadow-rs = { version = "0.25.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.27.1", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.24.1", default-features = false } +shadow-rs = { version = "0.25.0", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From 269b9860b3f3c5f2371d7384ad722ad98a969888 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Dec 2023 22:56:01 +0000 Subject: [PATCH 037/651] build(deps): update crate-ci/typos action to v1.16.24 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index fe8687dd..fb6734bb 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - - uses: crate-ci/typos@v1.16.23 + - uses: crate-ci/typos@v1.16.24 From 78de8d5e1676946d62ea2d5bed6ca40d3674520f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 9 Dec 2023 07:12:18 +0000 Subject: [PATCH 038/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.88.7 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index b5d9402f..b144d976 100644 --- a/.dprint.json +++ b/.dprint.json @@ -41,7 +41,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.6/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.7/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.5.4/plugin.wasm" From 17dfe4cb90b020b279647609c79afa0ba8163530 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 9 Dec 2023 14:06:34 +0100 Subject: [PATCH 039/651] ci: update release-please to v4 (#5619) * build(deps): update google-github-actions/release-please-action action to v4 * move `draft` option to config file --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 3 +-- release-please-config.json | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 release-please-config.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 20ef4ed0..ba52a75b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,12 +20,11 @@ jobs: release_created: ${{ steps.release.outputs.release_created }} tag_name: ${{ steps.release.outputs.tag_name }} steps: - - uses: google-github-actions/release-please-action@v3 + - uses: google-github-actions/release-please-action@v4 id: release with: token: ${{ secrets.GITHUB_TOKEN }} release-type: rust - draft: true # Build sources for every OS github_build: diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..0a580e7e --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "draft": true +} From f7da09d2d1666a13cb8d3e773b1ba9b0b0fa8130 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Dec 2023 03:01:09 +0000 Subject: [PATCH 040/651] build(deps): update rust crate mockall to 0.12 --- Cargo.lock | 46 +++++++++++----------------------------------- Cargo.toml | 2 +- 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 19a332aa..7419869a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -666,12 +666,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - [[package]] name = "digest" version = "0.9.0" @@ -899,15 +893,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - [[package]] name = "fnv" version = "1.0.7" @@ -1659,9 +1644,9 @@ checksum = "06d198e9919d9822d5f7083ba8530e04de87841eaf21ead9af8f2304efd57c89" [[package]] name = "itertools" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] @@ -1871,9 +1856,9 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.4" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +checksum = "1a978c8292954bcb9347a4e28772c0a0621166a1598fc1be28ac0076a4bb810e" dependencies = [ "cfg-if", "downcast", @@ -1886,14 +1871,14 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.4" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +checksum = "ad2765371d0978ba4ace4ebef047baa62fc068b431e468444b5610dd441c639b" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] @@ -1939,12 +1924,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "normalize-line-endings" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" - [[package]] name = "notify-rust" version = "4.10.0" @@ -2301,16 +2280,13 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "2.1.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" dependencies = [ - "difflib", - "float-cmp", - "itertools 0.10.5", - "normalize-line-endings", + "anstyle", + "itertools 0.11.0", "predicates-core", - "regex", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3f29842e..e58390b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -124,7 +124,7 @@ dunce = "1.0.4" winres = "0.1.12" [dev-dependencies] -mockall = "0.11" +mockall = "0.12" tempfile = "3.8.1" [profile.release] From 1272ec0811f920815f2d491a098b0ce68292e7e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:17:24 +0000 Subject: [PATCH 041/651] build(deps): update crate-ci/typos action to v1.16.25 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index fb6734bb..34ef5d80 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - - uses: crate-ci/typos@v1.16.24 + - uses: crate-ci/typos@v1.16.25 From f432800611d949a5e83d485e5a1e6e05710c1dcd Mon Sep 17 00:00:00 2001 From: ecksun Date: Thu, 14 Dec 2023 18:11:10 +0000 Subject: [PATCH 042/651] docs: Fix typo in gcloud description (#5634) --- docs/config/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config/README.md b/docs/config/README.md index c267a37d..0bb393fc 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -1655,7 +1655,7 @@ The `gcloud` module shows the current configuration for [`gcloud`](https://cloud This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. When the module is enabled it will always be active, unless `detect_env_vars` has -been set in which case the module will only be active be active when one of the +been set in which case the module will only be active when one of the environment variables has been set. ### Options From e79014a99f36e25d7223ef78dac95c72aded7446 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:54:08 +0000 Subject: [PATCH 043/651] build(deps): update rust crate home to 0.5.9 --- Cargo.lock | 132 +++++++++++++++++++++++++++++++++++++++-------------- Cargo.toml | 2 +- 2 files changed, 100 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7419869a..bdfb77a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,7 +67,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -77,7 +77,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -182,7 +182,7 @@ dependencies = [ "slab", "tracing", "waker-fn", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -208,7 +208,7 @@ dependencies = [ "event-listener 3.0.1", "futures-lite", "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -237,7 +237,7 @@ dependencies = [ "rustix 0.38.21", "signal-hook-registry", "slab", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -391,7 +391,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -804,7 +804,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -878,7 +878,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1535,11 +1535,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1614,7 +1614,7 @@ checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -1943,7 +1943,7 @@ version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2093,7 +2093,7 @@ dependencies = [ "libc", "redox_syscall 0.4.1", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2249,7 +2249,7 @@ dependencies = [ "libc", "log", "pin-project-lite", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2263,7 +2263,7 @@ dependencies = [ "pin-project-lite", "rustix 0.38.21", "tracing", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2333,7 +2333,7 @@ dependencies = [ "crossbeam-channel", "libc", "signal-hook 0.3.17", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2498,7 +2498,7 @@ dependencies = [ "io-lifetimes", "libc", "linux-raw-sys 0.3.8", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2511,7 +2511,7 @@ dependencies = [ "errno 0.3.5", "libc", "linux-raw-sys 0.4.10", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2927,7 +2927,7 @@ dependencies = [ "fastrand 2.0.1", "redox_syscall 0.4.1", "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2937,7 +2937,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3396,7 +3396,7 @@ dependencies = [ "home", "once_cell", "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3442,7 +3442,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -3452,7 +3452,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ "windows-core", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -3461,7 +3461,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -3470,7 +3470,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -3479,13 +3488,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -3494,42 +3518,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.25" diff --git a/Cargo.toml b/Cargo.toml index e58390b6..88bf2243 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,7 +91,7 @@ yaml-rust = "0.4.5" process_control = { version = "4.0.3", features = ["crossbeam-channel"] } guess_host_triple = "0.1.3" -home = "0.5.5" +home = "0.5.9" shell-words = "1.1.0" whoami = { version = "1.4.1", default-features = false } From 00d3dc86a21d11aede96f81ffbe49babe487984e Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 16 Dec 2023 16:58:45 +0100 Subject: [PATCH 044/651] fix(git_status): Avoid printing error on missing stash ref (#5434) * fix(git_status): Avoid printing error on missing stash ref * ensure we only proceed if the returned reference has the expected name --- src/modules/git_status.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/modules/git_status.rs b/src/modules/git_status.rs index 614e6f66..d1dd4c09 100644 --- a/src/modules/git_status.rs +++ b/src/modules/git_status.rs @@ -256,11 +256,12 @@ fn get_repo_status( fn get_stashed_count(repo: &context::Repo) -> Option { let repo = repo.open(); let reference = match repo.try_find_reference("refs/stash") { - Ok(Some(reference)) => reference, + // Only proceed if the found reference has the expected name (not tags/refs/stash etc.) + Ok(Some(reference)) if reference.name().as_bstr() == b"refs/stash".as_slice() => reference, // No stash reference found - Ok(None) => return Some(0), + Ok(_) => return Some(0), Err(err) => { - log::warn!("Error finding stash reference: {err}"); + log::debug!("Error finding stash reference: {err}"); return None; } }; @@ -272,7 +273,7 @@ fn get_stashed_count(repo: &context::Repo) -> Option { Some(0) } Err(err) => { - log::warn!("Error getting stash log: {err}"); + log::debug!("Error getting stash log: {err}"); None } } From a910e094f77ba6d67349a561e5e9780becfe823a Mon Sep 17 00:00:00 2001 From: Ananta Bastola Date: Sun, 17 Dec 2023 02:19:43 -0500 Subject: [PATCH 045/651] fix(docker_context): ignore unix domain socket path from Docker Context (#5616) * fix(modules): ignore unix domain socket path from Docker Context fix #5548 * refactor(docker_context): ignore docker_context on unix domain socket path Closes #5548 --- src/modules/docker_context.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/modules/docker_context.rs b/src/modules/docker_context.rs index 1c30001a..ad6c258a 100644 --- a/src/modules/docker_context.rs +++ b/src/modules/docker_context.rs @@ -57,7 +57,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { } }; - if ctx == "default" { + if ctx == "default" || ctx.starts_with("unix://") { return None; } @@ -293,6 +293,24 @@ mod tests { cfg_dir.close() } + #[test] + fn test_docker_host_env_with_unix_path() -> io::Result<()> { + let cfg_dir = tempfile::tempdir()?; + + let actual = ModuleRenderer::new("docker_context") + .env("DOCKER_HOST", "unix:///run/user/1001/podman/podman.sock") + .config(toml::toml! { + [docker_context] + only_with_files = false + }) + .collect(); + let expected = None; + + assert_eq!(expected, actual); + + cfg_dir.close() + } + #[test] fn test_docker_context_env() -> io::Result<()> { let cfg_dir = tempfile::tempdir()?; From 6d96df3c6828161bb9dc922fe45ef35a1ce33771 Mon Sep 17 00:00:00 2001 From: Stefan Richter Date: Sat, 16 Dec 2023 23:20:58 -0800 Subject: [PATCH 046/651] feat(aws): Adding the AWS SSO CLI env variable to profile list (#5640) Adding the AWS SSO CLI env variable to profile list Adding support for the profile env variable used by https://github.com/synfinatic/aws-sso-cli --- .github/config-schema.json | 2 +- docs/config/README.md | 3 +++ src/configs/aws.rs | 3 +++ src/modules/aws.rs | 22 +++++++++++++++++++++- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 22b938e0..a036fddb 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1847,7 +1847,7 @@ "definitions": { "AwsConfig": { "title": "AWS", - "description": "The `aws` module shows the current AWS region and profile and an expiration timer when using temporary credentials. The output of the module uses the `AWS_REGION`, `AWS_DEFAULT_REGION`, and `AWS_PROFILE` env vars and the `~/.aws/config` and `~/.aws/credentials` files as required.\n\nThe module will display a profile only if its credentials are present in `~/.aws/credentials` or if a `credential_process` or `sso_start_url` are defined in `~/.aws/config`. Alternatively, having any of the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, or `AWS_SESSION_TOKEN` env vars defined will also suffice. If the option `force_display` is set to `true`, all available information will be displayed even if no credentials per the conditions above are detected.\n\nWhen using [aws-vault](https://github.com/99designs/aws-vault) the profile is read from the `AWS_VAULT` env var and the credentials expiration date is read from the `AWS_SESSION_EXPIRATION` or `AWS_CREDENTIAL_EXPIRATION` var.\n\nWhen using [awsu](https://github.com/kreuzwerker/awsu) the profile is read from the `AWSU_PROFILE` env var.\n\nWhen using [`AWSume`](https://awsu.me) the profile is read from the `AWSUME_PROFILE` env var and the credentials expiration date is read from the `AWSUME_EXPIRATION` env var.", + "description": "The `aws` module shows the current AWS region and profile and an expiration timer when using temporary credentials. The output of the module uses the `AWS_REGION`, `AWS_DEFAULT_REGION`, and `AWS_PROFILE` env vars and the `~/.aws/config` and `~/.aws/credentials` files as required.\n\nThe module will display a profile only if its credentials are present in `~/.aws/credentials` or if a `credential_process` or `sso_start_url` are defined in `~/.aws/config`. Alternatively, having any of the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, or `AWS_SESSION_TOKEN` env vars defined will also suffice. If the option `force_display` is set to `true`, all available information will be displayed even if no credentials per the conditions above are detected.\n\nWhen using [aws-vault](https://github.com/99designs/aws-vault) the profile is read from the `AWS_VAULT` env var and the credentials expiration date is read from the `AWS_SESSION_EXPIRATION` or `AWS_CREDENTIAL_EXPIRATION` var.\n\nWhen using [awsu](https://github.com/kreuzwerker/awsu) the profile is read from the `AWSU_PROFILE` env var.\n\nWhen using [`AWSume`](https://awsu.me) the profile is read from the `AWSUME_PROFILE` env var and the credentials expiration date is read from the `AWSUME_EXPIRATION` env var.\n\nWhen using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var.", "type": "object", "properties": { "format": { diff --git a/docs/config/README.md b/docs/config/README.md index 0bb393fc..25b52b0d 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -383,6 +383,9 @@ date is read from the `AWSUME_EXPIRATION` env var. When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile +is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | diff --git a/src/configs/aws.rs b/src/configs/aws.rs index 92e981d4..22be0542 100644 --- a/src/configs/aws.rs +++ b/src/configs/aws.rs @@ -27,6 +27,9 @@ use std::collections::HashMap; /// When using [`AWSume`](https://awsu.me) the profile /// is read from the `AWSUME_PROFILE` env var and the credentials expiration /// date is read from the `AWSUME_EXPIRATION` env var. +/// +/// When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile +/// is read from the `AWS_SSO_PROFILE` env var. pub struct AwsConfig<'a> { /// The format for the module. pub format: &'a str, diff --git a/src/modules/aws.rs b/src/modules/aws.rs index 115c5bbb..0a5a0176 100644 --- a/src/modules/aws.rs +++ b/src/modules/aws.rs @@ -97,7 +97,13 @@ fn get_aws_profile_and_region( context: &Context, aws_config: &AwsConfigFile, ) -> (Option, Option) { - let profile_env_vars = ["AWSU_PROFILE", "AWS_VAULT", "AWSUME_PROFILE", "AWS_PROFILE"]; + let profile_env_vars = [ + "AWSU_PROFILE", + "AWS_VAULT", + "AWSUME_PROFILE", + "AWS_PROFILE", + "AWS_SSO_PROFILE", + ]; let region_env_vars = ["AWS_REGION", "AWS_DEFAULT_REGION"]; let profile = profile_env_vars .iter() @@ -414,6 +420,20 @@ mod tests { assert_eq!(expected, actual); } + #[test] + fn profile_set_from_awsssocli() { + let actual = ModuleRenderer::new("aws") + .env("AWS_SSO_PROFILE", "astronauts-awsssocli") + .env("AWS_ACCESS_KEY_ID", "dummy") + .collect(); + let expected = Some(format!( + "on {}", + Color::Yellow.bold().paint("☁️ astronauts-awsssocli ") + )); + + assert_eq!(expected, actual); + } + #[test] fn profile_and_region_set() { let actual = ModuleRenderer::new("aws") From e47bfbabb9b7d6af12a29db9413a6ec03fba174b Mon Sep 17 00:00:00 2001 From: Andrew Pantuso Date: Sun, 17 Dec 2023 02:22:29 -0500 Subject: [PATCH 047/651] feat(direnv): add new direnv module (#5157) --- .github/config-schema.json | 83 +++++++++++ docs/config/README.md | 42 ++++++ src/configs/direnv.rs | 40 +++++ src/configs/mod.rs | 3 + src/configs/starship_root.rs | 1 + src/module.rs | 1 + src/modules/direnv.rs | 280 +++++++++++++++++++++++++++++++++++ src/modules/mod.rs | 3 + 8 files changed, 453 insertions(+) create mode 100755 src/configs/direnv.rs create mode 100644 src/modules/direnv.rs diff --git a/.github/config-schema.json b/.github/config-schema.json index a036fddb..914693c3 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -354,6 +354,28 @@ } ] }, + "direnv": { + "default": { + "allowed_msg": "allowed", + "denied_msg": "denied", + "detect_extensions": [], + "detect_files": [ + ".envrc" + ], + "detect_folders": [], + "disabled": true, + "format": "[$symbol$loaded/$allowed]($style) ", + "loaded_msg": "loaded", + "style": "bold orange", + "symbol": "direnv ", + "unloaded_msg": "not loaded" + }, + "allOf": [ + { + "$ref": "#/definitions/DirenvConfig" + } + ] + }, "docker_context": { "default": { "detect_extensions": [], @@ -2707,6 +2729,67 @@ }, "additionalProperties": false }, + "DirenvConfig": { + "type": "object", + "properties": { + "format": { + "default": "[$symbol$loaded/$allowed]($style) ", + "type": "string" + }, + "symbol": { + "default": "direnv ", + "type": "string" + }, + "style": { + "default": "bold orange", + "type": "string" + }, + "disabled": { + "default": true, + "type": "boolean" + }, + "detect_extensions": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_files": { + "default": [ + ".envrc" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_folders": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "allowed_msg": { + "default": "allowed", + "type": "string" + }, + "denied_msg": { + "default": "denied", + "type": "string" + }, + "loaded_msg": { + "default": "loaded", + "type": "string" + }, + "unloaded_msg": { + "default": "not loaded", + "type": "string" + } + }, + "additionalProperties": false + }, "DockerContextConfig": { "type": "object", "properties": { diff --git a/docs/config/README.md b/docs/config/README.md index 25b52b0d..046ad01d 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -337,6 +337,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -1208,6 +1209,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Example | Description | +| -------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active diff --git a/src/configs/direnv.rs b/src/configs/direnv.rs new file mode 100755 index 00000000..5a58d795 --- /dev/null +++ b/src/configs/direnv.rs @@ -0,0 +1,40 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Deserialize, Serialize)] +#[cfg_attr( + feature = "config-schema", + derive(schemars::JsonSchema), + schemars(deny_unknown_fields) +)] +#[serde(default)] +pub struct DirenvConfig<'a> { + pub format: &'a str, + pub symbol: &'a str, + pub style: &'a str, + pub disabled: bool, + pub detect_extensions: Vec<&'a str>, + pub detect_files: Vec<&'a str>, + pub detect_folders: Vec<&'a str>, + pub allowed_msg: &'a str, + pub denied_msg: &'a str, + pub loaded_msg: &'a str, + pub unloaded_msg: &'a str, +} + +impl<'a> Default for DirenvConfig<'a> { + fn default() -> Self { + Self { + format: "[$symbol$loaded/$allowed]($style) ", + symbol: "direnv ", + style: "bold orange", + disabled: true, + detect_extensions: vec![], + detect_files: vec![".envrc"], + detect_folders: vec![], + allowed_msg: "allowed", + denied_msg: "denied", + loaded_msg: "loaded", + unloaded_msg: "not loaded", + } + } +} diff --git a/src/configs/mod.rs b/src/configs/mod.rs index 883055b8..c2cf0a8d 100644 --- a/src/configs/mod.rs +++ b/src/configs/mod.rs @@ -19,6 +19,7 @@ pub mod daml; pub mod dart; pub mod deno; pub mod directory; +pub mod direnv; pub mod docker_context; pub mod dotnet; pub mod elixir; @@ -143,6 +144,8 @@ pub struct FullConfig<'a> { #[serde(borrow)] directory: directory::DirectoryConfig<'a>, #[serde(borrow)] + direnv: direnv::DirenvConfig<'a>, + #[serde(borrow)] docker_context: docker_context::DockerContextConfig<'a>, #[serde(borrow)] dotnet: dotnet::DotnetConfig<'a>, diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index c93c1543..86fe7e75 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -107,6 +107,7 @@ pub const PROMPT_ORDER: &[&str] = &[ "gcloud", "openstack", "azure", + "direnv", "env_var", "crystal", "custom", diff --git a/src/module.rs b/src/module.rs index 33f8287b..0dcc0aad 100644 --- a/src/module.rs +++ b/src/module.rs @@ -27,6 +27,7 @@ pub const ALL_MODULES: &[&str] = &[ "dart", "deno", "directory", + "direnv", "docker_context", "dotnet", "elixir", diff --git a/src/modules/direnv.rs b/src/modules/direnv.rs new file mode 100644 index 00000000..4f67800e --- /dev/null +++ b/src/modules/direnv.rs @@ -0,0 +1,280 @@ +use std::borrow::Cow; +use std::path::PathBuf; +use std::str::FromStr; + +use super::{Context, Module, ModuleConfig}; + +use crate::configs::direnv::DirenvConfig; +use crate::formatter::StringFormatter; + +/// Creates a module with the current direnv rc +pub fn module<'a>(context: &'a Context) -> Option> { + let mut module = context.new_module("direnv"); + let config = DirenvConfig::try_load(module.config); + + let direnv_applies = !config.disabled + && context + .try_begin_scan()? + .set_extensions(&config.detect_extensions) + .set_files(&config.detect_files) + .set_folders(&config.detect_folders) + .is_match(); + + if !direnv_applies { + return None; + } + + let direnv_status = &context.exec_cmd("direnv", &["status"])?.stdout; + let state = match DirenvState::from_str(direnv_status) { + Ok(s) => s, + Err(e) => { + log::warn!("{e}"); + + return None; + } + }; + + let parsed = StringFormatter::new(config.format).and_then(|formatter| { + formatter + .map_style(|variable| match variable { + "style" => Some(Ok(config.style)), + _ => None, + }) + .map(|variable| match variable { + "symbol" => Some(Ok(Cow::from(config.symbol))), + "rc_path" => Some(Ok(state.rc_path.to_string_lossy())), + "allowed" => Some(Ok(match state.allowed { + AllowStatus::Allowed => Cow::from(config.allowed_msg), + AllowStatus::Denied => Cow::from(config.denied_msg), + })), + "loaded" => state + .loaded + .then_some(config.loaded_msg) + .or(Some(config.unloaded_msg)) + .map(Cow::from) + .map(Ok), + _ => None, + }) + .parse(None, Some(context)) + }); + + module.set_segments(match parsed { + Ok(segments) => segments, + Err(e) => { + log::warn!("{e}"); + + return None; + } + }); + + Some(module) +} + +struct DirenvState { + pub rc_path: PathBuf, + pub allowed: AllowStatus, + pub loaded: bool, +} + +impl FromStr for DirenvState { + type Err = Cow<'static, str>; + + fn from_str(s: &str) -> Result { + let mut rc_path = PathBuf::new(); + let mut allowed = None; + let mut loaded = true; + + for line in s.lines() { + if let Some(path) = line.strip_prefix("Found RC path") { + rc_path = PathBuf::from_str(path.trim()).map_err(|e| Cow::from(e.to_string()))? + } else if let Some(value) = line.strip_prefix("Found RC allowed") { + allowed = Some(AllowStatus::from_str(value.trim())?); + } else if line.contains("No .envrc or .env loaded") { + loaded = false; + }; + } + + if rc_path.as_os_str().is_empty() || allowed.is_none() { + return Err(Cow::from("unknown direnv state")); + } + + Ok(Self { + rc_path, + allowed: allowed.unwrap(), + loaded, + }) + } +} + +#[derive(Debug)] +enum AllowStatus { + Allowed, + Denied, +} + +impl FromStr for AllowStatus { + type Err = Cow<'static, str>; + + fn from_str(s: &str) -> Result { + match s { + "true" => Ok(AllowStatus::Allowed), + "false" => Ok(AllowStatus::Denied), + _ => Err(Cow::from("invalid allow status")), + } + } +} + +#[cfg(test)] +mod tests { + use crate::test::ModuleRenderer; + use crate::utils::CommandOutput; + use std::io; + use std::path::Path; + #[test] + fn folder_without_rc_files() { + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_without_rc(), + stderr: String::default(), + }), + ); + + assert_eq!(None, renderer.collect()); + } + #[test] + fn folder_with_unloaded_rc_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), false, true), + stderr: String::default(), + }), + ); + + assert_eq!( + Some(format!("direnv not loaded/allowed ")), + renderer.collect() + ); + + dir.close() + } + #[test] + fn folder_with_loaded_rc_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), true, true), + stderr: String::default(), + }), + ); + + assert_eq!(Some(format!("direnv loaded/allowed ")), renderer.collect()); + + dir.close() + } + #[test] + fn folder_with_loaded_and_denied_rc_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), true, false), + stderr: String::default(), + }), + ); + + assert_eq!(Some(format!("direnv loaded/denied ")), renderer.collect()); + + dir.close() + } + fn status_cmd_output_without_rc() -> String { + String::from( + r#"\ +direnv exec path /usr/bin/direnv +DIRENV_CONFIG /home/test/.config/direnv +bash_path /usr/bin/bash +disable_stdin false +warn_timeout 5s +whitelist.prefix [] +whitelist.exact map[] +No .envrc or .env loaded +No .envrc or .env found"#, + ) + } + fn status_cmd_output_with_rc(dir: impl AsRef, loaded: bool, allowed: bool) -> String { + let rc_path = dir.as_ref().join(".envrc"); + let rc_path = rc_path.to_string_lossy(); + + let loaded = if loaded { + format!( + r#"\ + Loaded RC path {rc_path} + Loaded watch: ".envrc" - 2023-04-30T09:51:04-04:00 + Loaded watch: "../.local/share/direnv/allow/abcd" - 2023-04-30T09:52:58-04:00 + Loaded RC allowed false + Loaded RC allowPath + "# + ) + } else { + String::from("No .envrc or .env loaded") + }; + + let state = allowed.to_string(); + + format!( + r#"\ +direnv exec path /usr/bin/direnv +DIRENV_CONFIG /home/test/.config/direnv +bash_path /usr/bin/bash +disable_stdin false +warn_timeout 5s +whitelist.prefix [] +whitelist.exact map[] +{loaded} +Found RC path {rc_path} +Found watch: ".envrc" - 2023-04-25T18:45:54-04:00 +Found watch: "../.local/share/direnv/allow/abcd" - 1969-12-31T19:00:00-05:00 +Found RC allowed {state} +Found RC allowPath /home/test/.local/share/direnv/allow/abcd +"# + ) + } +} diff --git a/src/modules/mod.rs b/src/modules/mod.rs index cc1eec4e..57983cd1 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -16,6 +16,7 @@ mod daml; mod dart; mod deno; mod directory; +mod direnv; mod docker_context; mod dotnet; mod elixir; @@ -122,6 +123,7 @@ pub fn handle<'a>(module: &str, context: &'a Context) -> Option> { "dart" => dart::module(context), "deno" => deno::module(context), "directory" => directory::module(context), + "direnv" => direnv::module(context), "docker_context" => docker_context::module(context), "dotnet" => dotnet::module(context), "elixir" => elixir::module(context), @@ -240,6 +242,7 @@ pub fn description(module: &str) -> &'static str { "dart" => "The currently installed version of Dart", "deno" => "The currently installed version of Deno", "directory" => "The current working directory", + "direnv" => "The currently applied direnv file", "docker_context" => "The current docker context", "dotnet" => "The relevant version of the .NET Core SDK for the current directory", "elixir" => "The currently installed versions of Elixir and OTP", From 9af6670cd2d893e7358bf09a9f2c243f4aa27d70 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 01:54:06 +0000 Subject: [PATCH 048/651] build(deps): update reviewdog/action-suggester action to v1.9.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 12c35ae0..7df7d444 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.8.0 + uses: reviewdog/action-suggester@v1.9.0 with: tool_name: starship config-schema filter_mode: nofilter From 9277bbd21a0bfca2166ade8fa1d4e06578f74a15 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Dec 2023 17:00:42 +0000 Subject: [PATCH 049/651] build(deps): update crate-ci/typos action to v1.16.26 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 34ef5d80..4ccac96a 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - - uses: crate-ci/typos@v1.16.25 + - uses: crate-ci/typos@v1.16.26 From 0255c3999b0a4c2b10e2b28e6617fb96c18c920c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Dec 2023 19:30:06 +0000 Subject: [PATCH 050/651] build(deps): update rust crate clap_complete to 4.4.5 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bdfb77a8..40f52d4d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -420,9 +420,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.4" +version = "4.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae" +checksum = "a51919c5608a32e34ea1d6be321ad070065e17613e168c5b6977024290f2630b" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 88bf2243..61964d78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.11", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.4" +clap_complete = "4.4.5" dirs-next = "2.0.0" dunce = "1.0.4" # default feature restriction addresses https://github.com/starship/starship/issues/4251 From cc161b635e878967f380f4e0c8dd76c20af16e15 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 06:30:34 +0000 Subject: [PATCH 051/651] build(deps): update rust crate tempfile to 3.9.0 --- Cargo.lock | 48 ++++++++++++++++++++++++------------------------ Cargo.toml | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 40f52d4d..45eed417 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -178,7 +178,7 @@ dependencies = [ "futures-lite", "parking", "polling 3.3.0", - "rustix 0.38.21", + "rustix 0.38.28", "slab", "tracing", "waker-fn", @@ -207,7 +207,7 @@ dependencies = [ "cfg-if", "event-listener 3.0.1", "futures-lite", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -234,7 +234,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.21", + "rustix 0.38.28", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -799,12 +799,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1235,7 +1235,7 @@ dependencies = [ "itoa", "libc", "memmap2", - "rustix 0.38.21", + "rustix 0.38.28", "smallvec", "thiserror", ] @@ -1699,9 +1699,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libredox" @@ -1749,9 +1749,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -2261,7 +2261,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.21", + "rustix 0.38.28", "tracing", "windows-sys 0.48.0", ] @@ -2494,7 +2494,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ "bitflags 1.3.2", - "errno 0.3.5", + "errno 0.3.8", "io-lifetimes", "libc", "linux-raw-sys 0.3.8", @@ -2503,15 +2503,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", - "errno 0.3.5", + "errno 0.3.8", "libc", - "linux-raw-sys 0.4.10", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -2919,15 +2919,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall 0.4.1", - "rustix 0.38.21", - "windows-sys 0.48.0", + "rustix 0.38.28", + "windows-sys 0.52.0", ] [[package]] @@ -2936,7 +2936,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -3395,7 +3395,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.21", + "rustix 0.38.28", "windows-sys 0.48.0", ] diff --git a/Cargo.toml b/Cargo.toml index 61964d78..9d3b1070 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,7 +125,7 @@ winres = "0.1.12" [dev-dependencies] mockall = "0.12" -tempfile = "3.8.1" +tempfile = "3.9.0" [profile.release] codegen-units = 1 From edefca994e00b67234032783011c37049dd9fb3d Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Fri, 29 Dec 2023 03:07:36 +0900 Subject: [PATCH 052/651] docs(i18n): new Crowdin updates (#5358) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Norwegian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Bengali) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations readme.md (Arabic) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations nerd-font.md (Korean) * New translations pure-preset.md (Korean) * New translations tokyo-night.md (Korean) * New translations gruvbox-rainbow.md (Korean) * New translations bracketed-segments.md (Korean) * New translations no-runtimes.md (Korean) * New translations plain-text.md (Korean) * New translations pastel-powerline.md (Korean) * New translations no-nerd-font.md (Korean) * New translations no-empty-icons.md (Korean) * New translations jetpack.md (Korean) * New translations no-nerd-font.md (Spanish) * New translations no-empty-icons.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (German) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Polish) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (French) * New translations readme.md (Russian) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Russian) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Bengali) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Russian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Norwegian) * New translations readme.md (Bengali) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (German) * New translations readme.md (Japanese) * New translations readme.md (Russian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations gruvbox-rainbow.md (Polish) * New translations jetpack.md (Polish) * New translations readme.md (Ukrainian) --- docs/ar-SA/config/README.md | 339 +- docs/ar-SA/guide/README.md | 16 +- docs/ar-SA/presets/README.md | 6 + docs/ar-SA/presets/gruvbox-rainbow.md | 21 + docs/ar-SA/presets/jetpack.md | 24 + docs/bn-BD/README.md | 188 + docs/bn-BD/advanced-config/README.md | 284 ++ docs/bn-BD/config/README.md | 4484 ++++++++++++++++++++++ docs/bn-BD/faq/README.md | 122 + docs/bn-BD/guide/README.md | 445 +++ docs/bn-BD/installing/README.md | 93 + docs/bn-BD/migrating-to-0.45.0/README.md | 267 ++ docs/bn-BD/presets/README.md | 71 + docs/bn-BD/presets/bracketed-segments.md | 17 + docs/bn-BD/presets/gruvbox-rainbow.md | 21 + docs/bn-BD/presets/jetpack.md | 24 + docs/bn-BD/presets/nerd-font.md | 21 + docs/bn-BD/presets/no-empty-icons.md | 17 + docs/bn-BD/presets/no-nerd-font.md | 19 + docs/bn-BD/presets/no-runtimes.md | 17 + docs/bn-BD/presets/pastel-powerline.md | 21 + docs/bn-BD/presets/plain-text.md | 17 + docs/bn-BD/presets/pure-preset.md | 17 + docs/bn-BD/presets/tokyo-night.md | 21 + docs/ckb-IR/config/README.md | 339 +- docs/ckb-IR/guide/README.md | 8 +- docs/ckb-IR/presets/README.md | 6 + docs/ckb-IR/presets/gruvbox-rainbow.md | 21 + docs/ckb-IR/presets/jetpack.md | 24 + docs/de-DE/config/README.md | 337 +- docs/de-DE/guide/README.md | 10 +- docs/de-DE/presets/README.md | 6 + docs/de-DE/presets/gruvbox-rainbow.md | 21 + docs/de-DE/presets/jetpack.md | 24 + docs/es-ES/config/README.md | 431 ++- docs/es-ES/guide/README.md | 8 +- docs/es-ES/presets/README.md | 10 +- docs/es-ES/presets/gruvbox-rainbow.md | 21 + docs/es-ES/presets/jetpack.md | 24 + docs/es-ES/presets/no-empty-icons.md | 6 +- docs/es-ES/presets/no-nerd-font.md | 2 +- docs/es-ES/presets/tokyo-night.md | 6 +- docs/fr-FR/config/README.md | 337 +- docs/fr-FR/guide/README.md | 16 +- docs/fr-FR/presets/README.md | 6 + docs/fr-FR/presets/gruvbox-rainbow.md | 21 + docs/fr-FR/presets/jetpack.md | 24 + docs/id-ID/config/README.md | 357 +- docs/id-ID/guide/README.md | 8 +- docs/id-ID/presets/README.md | 6 + docs/id-ID/presets/gruvbox-rainbow.md | 21 + docs/id-ID/presets/jetpack.md | 24 + docs/it-IT/config/README.md | 357 +- docs/it-IT/guide/README.md | 8 +- docs/it-IT/presets/README.md | 6 + docs/it-IT/presets/gruvbox-rainbow.md | 21 + docs/it-IT/presets/jetpack.md | 24 + docs/ja-JP/README.md | 6 +- docs/ja-JP/config/README.md | 353 +- docs/ja-JP/guide/README.md | 20 +- docs/ja-JP/presets/README.md | 6 + docs/ja-JP/presets/gruvbox-rainbow.md | 21 + docs/ja-JP/presets/jetpack.md | 24 + docs/ko-KR/README.md | 36 +- docs/ko-KR/advanced-config/README.md | 36 +- docs/ko-KR/config/README.md | 1059 ++--- docs/ko-KR/faq/README.md | 42 +- docs/ko-KR/guide/README.md | 104 +- docs/ko-KR/installing/README.md | 2 +- docs/ko-KR/migrating-to-0.45.0/README.md | 2 +- docs/ko-KR/presets/README.md | 34 +- docs/ko-KR/presets/bracketed-segments.md | 6 +- docs/ko-KR/presets/gruvbox-rainbow.md | 21 + docs/ko-KR/presets/jetpack.md | 24 + docs/ko-KR/presets/nerd-font.md | 16 +- docs/ko-KR/presets/no-empty-icons.md | 6 +- docs/ko-KR/presets/no-nerd-font.md | 6 +- docs/ko-KR/presets/no-runtimes.md | 6 +- docs/ko-KR/presets/pastel-powerline.md | 6 +- docs/ko-KR/presets/plain-text.md | 6 +- docs/ko-KR/presets/pure-preset.md | 12 +- docs/ko-KR/presets/tokyo-night.md | 14 +- docs/nl-NL/config/README.md | 337 +- docs/nl-NL/guide/README.md | 8 +- docs/nl-NL/presets/README.md | 6 + docs/nl-NL/presets/gruvbox-rainbow.md | 21 + docs/nl-NL/presets/jetpack.md | 24 + docs/no-NO/config/README.md | 337 +- docs/no-NO/guide/README.md | 8 +- docs/no-NO/presets/README.md | 6 + docs/no-NO/presets/gruvbox-rainbow.md | 21 + docs/no-NO/presets/jetpack.md | 24 + docs/pl-PL/config/README.md | 337 +- docs/pl-PL/faq/README.md | 2 +- docs/pl-PL/guide/README.md | 8 +- docs/pl-PL/presets/README.md | 6 + docs/pl-PL/presets/gruvbox-rainbow.md | 21 + docs/pl-PL/presets/jetpack.md | 24 + docs/pt-BR/config/README.md | 355 +- docs/pt-BR/guide/README.md | 8 +- docs/pt-BR/presets/README.md | 6 + docs/pt-BR/presets/gruvbox-rainbow.md | 21 + docs/pt-BR/presets/jetpack.md | 24 + docs/pt-PT/config/README.md | 337 +- docs/pt-PT/guide/README.md | 8 +- docs/pt-PT/presets/README.md | 6 + docs/pt-PT/presets/gruvbox-rainbow.md | 21 + docs/pt-PT/presets/jetpack.md | 24 + docs/ru-RU/README.md | 22 +- docs/ru-RU/advanced-config/README.md | 10 +- docs/ru-RU/config/README.md | 337 +- docs/ru-RU/faq/README.md | 8 +- docs/ru-RU/guide/README.md | 10 +- docs/ru-RU/presets/README.md | 52 +- docs/ru-RU/presets/bracketed-segments.md | 10 +- docs/ru-RU/presets/gruvbox-rainbow.md | 21 + docs/ru-RU/presets/jetpack.md | 24 + docs/ru-RU/presets/nerd-font.md | 8 +- docs/ru-RU/presets/no-empty-icons.md | 10 +- docs/ru-RU/presets/no-nerd-font.md | 12 +- docs/ru-RU/presets/no-runtimes.md | 10 +- docs/ru-RU/presets/pastel-powerline.md | 12 +- docs/ru-RU/presets/plain-text.md | 10 +- docs/ru-RU/presets/pure-preset.md | 10 +- docs/ru-RU/presets/tokyo-night.md | 10 +- docs/tr-TR/config/README.md | 339 +- docs/tr-TR/guide/README.md | 10 +- docs/tr-TR/presets/README.md | 6 + docs/tr-TR/presets/gruvbox-rainbow.md | 21 + docs/tr-TR/presets/jetpack.md | 24 + docs/uk-UA/config/README.md | 441 ++- docs/uk-UA/guide/README.md | 32 +- docs/uk-UA/presets/README.md | 6 + docs/uk-UA/presets/gruvbox-rainbow.md | 21 + docs/uk-UA/presets/jetpack.md | 24 + docs/vi-VN/config/README.md | 347 +- docs/vi-VN/guide/README.md | 10 +- docs/vi-VN/presets/README.md | 6 + docs/vi-VN/presets/gruvbox-rainbow.md | 21 + docs/vi-VN/presets/jetpack.md | 24 + docs/zh-CN/README.md | 2 +- docs/zh-CN/config/README.md | 337 +- docs/zh-CN/guide/README.md | 20 +- docs/zh-CN/presets/README.md | 6 + docs/zh-CN/presets/gruvbox-rainbow.md | 21 + docs/zh-CN/presets/jetpack.md | 24 + docs/zh-TW/README.md | 2 +- docs/zh-TW/config/README.md | 337 +- docs/zh-TW/guide/README.md | 36 +- docs/zh-TW/presets/README.md | 6 + docs/zh-TW/presets/gruvbox-rainbow.md | 21 + docs/zh-TW/presets/jetpack.md | 24 + 152 files changed, 13151 insertions(+), 2573 deletions(-) create mode 100644 docs/ar-SA/presets/gruvbox-rainbow.md create mode 100644 docs/ar-SA/presets/jetpack.md create mode 100644 docs/bn-BD/README.md create mode 100644 docs/bn-BD/advanced-config/README.md create mode 100644 docs/bn-BD/config/README.md create mode 100644 docs/bn-BD/faq/README.md create mode 100644 docs/bn-BD/guide/README.md create mode 100644 docs/bn-BD/installing/README.md create mode 100644 docs/bn-BD/migrating-to-0.45.0/README.md create mode 100644 docs/bn-BD/presets/README.md create mode 100644 docs/bn-BD/presets/bracketed-segments.md create mode 100644 docs/bn-BD/presets/gruvbox-rainbow.md create mode 100644 docs/bn-BD/presets/jetpack.md create mode 100644 docs/bn-BD/presets/nerd-font.md create mode 100644 docs/bn-BD/presets/no-empty-icons.md create mode 100644 docs/bn-BD/presets/no-nerd-font.md create mode 100644 docs/bn-BD/presets/no-runtimes.md create mode 100644 docs/bn-BD/presets/pastel-powerline.md create mode 100644 docs/bn-BD/presets/plain-text.md create mode 100644 docs/bn-BD/presets/pure-preset.md create mode 100644 docs/bn-BD/presets/tokyo-night.md create mode 100644 docs/ckb-IR/presets/gruvbox-rainbow.md create mode 100644 docs/ckb-IR/presets/jetpack.md create mode 100644 docs/de-DE/presets/gruvbox-rainbow.md create mode 100644 docs/de-DE/presets/jetpack.md create mode 100644 docs/es-ES/presets/gruvbox-rainbow.md create mode 100644 docs/es-ES/presets/jetpack.md create mode 100644 docs/fr-FR/presets/gruvbox-rainbow.md create mode 100644 docs/fr-FR/presets/jetpack.md create mode 100644 docs/id-ID/presets/gruvbox-rainbow.md create mode 100644 docs/id-ID/presets/jetpack.md create mode 100644 docs/it-IT/presets/gruvbox-rainbow.md create mode 100644 docs/it-IT/presets/jetpack.md create mode 100644 docs/ja-JP/presets/gruvbox-rainbow.md create mode 100644 docs/ja-JP/presets/jetpack.md create mode 100644 docs/ko-KR/presets/gruvbox-rainbow.md create mode 100644 docs/ko-KR/presets/jetpack.md create mode 100644 docs/nl-NL/presets/gruvbox-rainbow.md create mode 100644 docs/nl-NL/presets/jetpack.md create mode 100644 docs/no-NO/presets/gruvbox-rainbow.md create mode 100644 docs/no-NO/presets/jetpack.md create mode 100644 docs/pl-PL/presets/gruvbox-rainbow.md create mode 100644 docs/pl-PL/presets/jetpack.md create mode 100644 docs/pt-BR/presets/gruvbox-rainbow.md create mode 100644 docs/pt-BR/presets/jetpack.md create mode 100644 docs/pt-PT/presets/gruvbox-rainbow.md create mode 100644 docs/pt-PT/presets/jetpack.md create mode 100644 docs/ru-RU/presets/gruvbox-rainbow.md create mode 100644 docs/ru-RU/presets/jetpack.md create mode 100644 docs/tr-TR/presets/gruvbox-rainbow.md create mode 100644 docs/tr-TR/presets/jetpack.md create mode 100644 docs/uk-UA/presets/gruvbox-rainbow.md create mode 100644 docs/uk-UA/presets/jetpack.md create mode 100644 docs/vi-VN/presets/gruvbox-rainbow.md create mode 100644 docs/vi-VN/presets/jetpack.md create mode 100644 docs/zh-CN/presets/gruvbox-rainbow.md create mode 100644 docs/zh-CN/presets/jetpack.md create mode 100644 docs/zh-TW/presets/gruvbox-rainbow.md create mode 100644 docs/zh-TW/presets/jetpack.md diff --git a/docs/ar-SA/config/README.md b/docs/ar-SA/config/README.md index d0b30c34..23325dc0 100644 --- a/docs/ar-SA/config/README.md +++ b/docs/ar-SA/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### مثال @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | الافتراضي | الوصف | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | الافتراضي | الوصف | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | الافتراضي | الوصف | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -671,7 +683,7 @@ The character will tell you whether the last command was successful or not. It c By default it only changes color. If you also want to change its shape take a look at [this example](#with-custom-error-shape). -::: warning +::: تحذير `vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | الافتراضي | الوصف | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | مثال | الوصف | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### مثال + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | الافتراضي | الوصف | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | مثال | الوصف | +| ----------------- | ---- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### مثال + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | الافتراضي | الوصف | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | الافتراضي | الوصف | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | الافتراضي | الوصف | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | الافتراضي | الوصف | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | الافتراضي | الوصف | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### مثال +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: تحذير + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | الافتراضي | الوصف | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | الوصف | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | مثال | الوصف | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | الافتراضي | الوصف | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | الافتراضي | الوصف | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | الافتراضي | الوصف | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | الافتراضي | الوصف | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | الافتراضي | الوصف | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | مثال | الوصف | +| ------------- | ----------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `الافتراضي` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/ar-SA/guide/README.md b/docs/ar-SA/guide/README.md index 9a0e3d0b..0c51ea34 100644 --- a/docs/ar-SA/guide/README.md +++ b/docs/ar-SA/guide/README.md @@ -20,7 +20,7 @@ Packaging status
تابع @StarshipPrompt على تويتر + Stand With Ukraine

@@ -87,7 +92,7 @@ >Italiano  

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

-استكشف مستندات Starship  ▶ +تصفّح مستندات Starship  ▶

@@ -229,6 +232,7 @@ curl -sS https://starship.rs/install.sh | sh | Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | | NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | | Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` | @@ -299,7 +303,7 @@ load(io.popen('starship init cmd'):read("*a"))()
Elvish -أضف ما يلي إلى نهاية `~/.elvish/rc.elv`: +أضف ما يلي إلى نهاية الملف `~/.elvish/rc.elv`: ```sh eval (starship init elvish) diff --git a/docs/ar-SA/presets/README.md b/docs/ar-SA/presets/README.md index 3903bc17..2e332ad1 100644 --- a/docs/ar-SA/presets/README.md +++ b/docs/ar-SA/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/ar-SA/presets/gruvbox-rainbow.md b/docs/ar-SA/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..798ea8a0 --- /dev/null +++ b/docs/ar-SA/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### المتطلبات الأساسية + +- تثبيت [Nerd Font](https://www.nerdfonts.com/) وتمكينه في موجه الأوامر الخاصة بك + +### Configuration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ar-SA/presets/jetpack.md b/docs/ar-SA/presets/jetpack.md new file mode 100644 index 00000000..0f52a9a9 --- /dev/null +++ b/docs/ar-SA/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/bn-BD/README.md b/docs/bn-BD/README.md new file mode 100644 index 00000000..7db34ef6 --- /dev/null +++ b/docs/bn-BD/README.md @@ -0,0 +1,188 @@ +--- +home: true +heroImage: /logo.svg +heroText: +tagline: আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট! +actionText: Get Started → +actionLink: ./guide/ +features: + - + title: Compatibility First + details: Works on the most common shells on the most common operating systems. Use it everywhere! + - + title: Rust-Powered + details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. + - + title: Customizable + details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. +footer: ISC Licensed | Copyright © 2019-present Starship Contributors +#Used for the description meta tag, for SEO +metaTitle: "Starship: Cross-Shell Prompt" +description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. +--- + +
+ +
+ +### পূর্বশর্ত + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal. + +### Quick Install + +1. Install the **starship** binary: + + + #### Install Latest Version + + With Shell: + + ```sh + curl -sS https://starship.rs/install.sh | sh + ``` + + To update the Starship itself, rerun the above script. It will replace the current version without touching Starship's configuration. + + + #### Install via Package Manager + + With [Homebrew](https://brew.sh/): + + ```sh + brew install starship + ``` + With [Winget](https://github.com/microsoft/winget-cli): + + ```powershell + winget install starship + ``` + +1. Add the init script to your shell's config file: + + + #### Bash + + `~/.bashrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.bashrc + + eval "$(starship init bash)" + ``` + + + #### Fish + + `~/.config/fish/config.fish` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.config/fish/config.fish + + starship init fish | source + ``` + + + #### Zsh + + `~/.zshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.zshrc + + eval "$(starship init zsh)" + ``` + + + #### Powershell + + Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix. + + ```sh + Invoke-Expression (&starship init powershell) + ``` + + + #### Ion + + `~/.config/ion/initrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.config/ion/initrc + + eval $(starship init ion) + ``` + + + #### Elvish + + ::: warning + + Only elvish v0.18 or higher is supported. + + ::: + + `~/.elvish/rc.elv` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.elvish/rc.elv + + eval (starship init elvish) + ``` + + + #### Tcsh + + `~/.tcshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.tcshrc + + eval `starship init tcsh` + ``` + + + #### Nushell + + ::: warning + + This will change in the future. Only Nushell v0.78+ is supported. + + ::: + + আপনার Nushell env ফাইলের (Nushell এ `$nu.env-path` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনগুলি যোগ করুন: + ```sh + mkdir ~/.cache/starship + starship init nu | save -f ~/.cache/starship/init.nu + ``` + + এরপর আপনার Nushell কনফিগের (Nushell এ `$nu.config-path` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনটি যোগ করুন: + + ```sh + use ~/.cache/starship/init.nu + ``` + + + #### Xonsh + + `~/.xonshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + + ```sh + # ~/.xonshrc + + execx($(starship init xonsh)) + ``` + + + #### Cmd + + আপনাকে Cmd এর সাথে [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) ব্যবহার করতে হবে । Add the following to a file `starship.lua` and place this file in Clink scripts directory: + + ```lua + -- starship.lua + + load(io.popen('starship init cmd'):read("*a"))() + ``` diff --git a/docs/bn-BD/advanced-config/README.md b/docs/bn-BD/advanced-config/README.md new file mode 100644 index 00000000..9dc0b4c6 --- /dev/null +++ b/docs/bn-BD/advanced-config/README.md @@ -0,0 +1,284 @@ +# Advanced Configuration + +While Starship is a versatile shell, sometimes you need to do more than edit `starship.toml` to get it to do certain things. This page details some of the more advanced configuration techniques used in starship. + +::: warning + +The configurations in this section are subject to change in future releases of Starship. + +::: + +## TransientPrompt in PowerShell + +It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put this statement in your `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`. + +By default, the left side of input gets replaced with `>`. To customize this, define a new function called `Invoke-Starship-TransientFunction`. For example, to display Starship's `character` module here, you would do + +```powershell +function Invoke-Starship-TransientFunction { + &starship module character +} + +Invoke-Expression (&starship init powershell) + +Enable-TransientPrompt +``` + +## TransientPrompt and TransientRightPrompt in Cmd + +Clink allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, run `clink set prompt.transient ` where \ can be one of: + +- `always`: always replace the previous prompt +- `same_dir`: replace the previous prompt only if the working directory is same +- `off`: do not replace the prompt (i.e. turn off transience) + +You need to do this only once. Make the following changes to your `starship.lua` to customize what gets displayed on the left and on the right: + +- By default, the left side of input gets replaced with `>`. To customize this, define a new function called `starship_transient_prompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display Starship's `character` module here, you would do + +```lua +function starship_transient_prompt_func(prompt) + return io.popen("starship module character" + .." --keymap="..rl.getvariable('keymap') + ):read("*a") +end +load(io.popen('starship init cmd'):read("*a"))() +``` + +- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display the time at which the last command was started here, you would do + +```lua +function starship_transient_rprompt_func(prompt) + return io.popen("starship module time"):read("*a") +end +load(io.popen('starship init cmd'):read("*a"))() +``` + +## TransientPrompt and TransientRightPrompt in Fish + +It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`. + +Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct. + +- By default, the left side of input gets replaced with a bold-green `❯`. To customize this, define a new function called `starship_transient_prompt_func`. For example, to display Starship's `character` module here, you would do + +```fish +function starship_transient_prompt_func + starship module character +end +starship init fish | source +enable_transience +``` + +- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. For example, to display the time at which the last command was started here, you would do + +```fish +function starship_transient_rprompt_func + starship module time +end +starship init fish | source +enable_transience +``` + +## Custom pre-prompt and pre-execution Commands in Cmd + +Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: + +- To run a custom function right before the prompt is drawn, define a new function called `starship_preprompt_user_func`. This function receives the current prompt as a string that you can utilize. For example, to draw a rocket before the prompt, you would do + +```lua +function starship_preprompt_user_func(prompt) + print("🚀") +end + +load(io.popen('starship init cmd'):read("*a"))() +``` + +- To run a custom function right before a command is executed, define a new function called `starship_precmd_user_func`. This function receives the current commandline as a string that you can utilize. For example, to print the command that's about to be executed, you would do + +```lua +function starship_precmd_user_func(line) + print("Executing: "..line) +end + +load(io.popen('starship init cmd'):read("*a"))() +``` + +## Custom pre-prompt and pre-execution Commands in Bash + +Bash does not have a formal preexec/precmd framework like most other shells. Because of this, it is difficult to provide fully customizable hooks in `bash`. However, Starship does give you limited ability to insert your own functions into the prompt-rendering procedure: + +- To run a custom function right before the prompt is drawn, define a new function and then assign its name to `starship_precmd_user_func`. For example, to draw a rocket before the prompt, you would do + +```bash +function blastoff(){ + echo "🚀" +} +starship_precmd_user_func="blastoff" +``` + +- To run a custom function right before a command runs, you can use the [`DEBUG` trap mechanism](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/). However, you **must** trap the DEBUG signal _before_ initializing Starship! Starship can preserve the value of the DEBUG trap, but if the trap is overwritten after starship starts up, some functionality will break. + +```bash +function blastoff(){ + echo "🚀" +} +trap blastoff DEBUG # Trap DEBUG *before* running starship +set -o functrace +eval $(starship init bash) +set +o functrace +``` + +## Custom pre-prompt and pre-execution Commands in PowerShell + +PowerShell does not have a formal preexec/precmd framework like most other shells. Because of this, it is difficult to provide fully customizable hooks in `powershell`. However, Starship does give you limited ability to insert your own functions into the prompt-rendering procedure: + +Create a function named `Invoke-Starship-PreCommand` + +```powershell +function Invoke-Starship-PreCommand { + $host.ui.Write("🚀") +} +``` + +## Change Window Title + +Some shell prompts will automatically change the window title for you (e.g. to reflect your working directory). Fish even does it by default. Starship does not do this, but it's fairly straightforward to add this functionality to `bash`, `zsh`, `cmd` or `powershell`. + +First, define a window title change function (identical in bash and zsh): + +```bash +function set_win_title(){ + echo -ne "\033]0; YOUR_WINDOW_TITLE_HERE \007" +} +``` + +You can use variables to customize this title (`$USER`, `$HOSTNAME`, and `$PWD` are popular choices). + +In `bash`, set this function to be the precmd starship function: + +```bash +starship_precmd_user_func="set_win_title" +``` + +In `zsh`, add this to the `precmd_functions` array: + +```bash +precmd_functions+=(set_win_title) +``` + +If you like the result, add these lines to your shell configuration file (`~/.bashrc` or `~/.zshrc`) to make it permanent. + +For example, if you want to display your current directory in your terminal tab title, add the following snippet to your `~/.bashrc` or `~/.zshrc`: + +```bash +function set_win_title(){ + echo -ne "\033]0; $(basename "$PWD") \007" +} +starship_precmd_user_func="set_win_title" +``` + +For Cmd, you can change the window title using the `starship_preprompt_user_func` function. + +```lua +function starship_preprompt_user_func(prompt) + console.settitle(os.getenv('USERNAME').."@"..os.getenv('COMPUTERNAME')..": "..os.getcwd()) +end + +load(io.popen('starship init cmd'):read("*a"))() +``` + +You can also set a similar output with PowerShell by creating a function named `Invoke-Starship-PreCommand`. + +```powershell +# edit $PROFILE +function Invoke-Starship-PreCommand { + $host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a" +} + +Invoke-Expression (&starship init powershell) +``` + +## Enable Right Prompt + +Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. + +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). + +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. + +### Example + +```toml +# ~/.config/starship.toml + +# A minimal left prompt +format = """$character""" + +# move the rest of the prompt to the right +right_format = """$all""" +``` + +Produces a prompt like the following: + +``` +▶ starship on  rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s +``` + +## Continuation Prompt + +Some shells support a continuation prompt along with the normal prompt. This prompt is rendered instead of the normal prompt when the user has entered an incomplete statement (such as a single left parenthesis or quote). + +Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `'[∙](bright-black) '`. + +Note: `continuation_prompt` should be set to a literal string without any variables. + +Note: Continuation prompts are only available in the following shells: + +- `bash` +- `zsh` +- `PowerShell` + +### Example + +```toml +# ~/.config/starship.toml + +# A continuation prompt that displays two filled in arrows +continuation_prompt = '▶▶ ' +``` + +## Style Strings + +Style strings are a list of words, separated by whitespace. The words are not case sensitive (i.e. `bold` and `BoLd` are considered the same string). Each word can be one of the following: + +- `bold` +- `italic` +- `underline` +- `dimmed` +- `inverted` +- `blink` +- `hidden` +- `strikethrough` +- `bg:` +- `fg:` +- `` +- `none` + +where `` is a color specifier (discussed below). `fg:` and `` currently do the same thing, though this may change in the future. `inverted` swaps the background and foreground colors. The order of words in the string does not matter. + +The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future. + +A color specifier can be one of the following: + +- One of the standard terminal colors: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. You can optionally prefix these with `bright-` to get the bright version (e.g. `bright-white`). +- A `#` followed by a six-digit hexadecimal number. This specifies an [RGB color hex code](https://www.w3schools.com/colors/colors_hexadecimal.asp). +- A number between 0-255. This specifies an [8-bit ANSI Color Code](https://i.stack.imgur.com/KTSQa.png). + +If multiple colors are specified for foreground/background, the last one in the string will take priority. + +Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist: + +- Many terminals disable support for `blink` by default +- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564). +- `strikethrough` is not supported by the default macOS Terminal.app diff --git a/docs/bn-BD/config/README.md b/docs/bn-BD/config/README.md new file mode 100644 index 00000000..dccdabf2 --- /dev/null +++ b/docs/bn-BD/config/README.md @@ -0,0 +1,4484 @@ +# Configuration + +To get started configuring starship, create the following file: `~/.config/starship.toml`. + +```sh +mkdir -p ~/.config && touch ~/.config/starship.toml +``` + +All configuration for starship is done in this [TOML](https://github.com/toml-lang/toml) file: + +```toml +# Get editor completions based on the config schema +"$schema" = 'https://starship.rs/config-schema.json' + +# Inserts a blank line between shell prompts +add_newline = true + +# Replace the '❯' symbol in the prompt with '➜' +[character] # The name of the module we are configuring is 'character' +success_symbol = '[➜](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green' + +# Disable the package module, hiding it from the prompt completely +[package] +disabled = true +``` + +### Config File Location + +You can change default configuration file location with `STARSHIP_CONFIG` environment variable: + +```sh +export STARSHIP_CONFIG=~/example/non/default/path/starship.toml +``` + +Equivalently in PowerShell (Windows) would be adding this line to your `$PROFILE`: + +```powershell +$ENV:STARSHIP_CONFIG = "$HOME\example\non\default\path\starship.toml" +``` + +Or for Cmd (Windows) would be adding this line to your `starship.lua`: + +```lua +os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\starship.toml') +``` + +### Logging + +By default starship logs warnings and errors into a file named `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`, where the session key is corresponding to an instance of your terminal. This, however can be changed using the `STARSHIP_CACHE` environment variable: + +```sh +export STARSHIP_CACHE=~/.starship/cache +``` + +Equivalently in PowerShell (Windows) would be adding this line to your `$PROFILE`: + +```powershell +$ENV:STARSHIP_CACHE = "$HOME\AppData\Local\Temp" +``` + +Or for Cmd (Windows) would be adding this line to your `starship.lua`: + +```lua +os.setenv('STARSHIP_CACHE', 'C:\\Users\\user\\AppData\\Local\\Temp') +``` + +### Terminology + +**Module**: A component in the prompt giving information based on contextual information from your OS. For example, the "nodejs" module shows the version of Node.js that is currently installed on your computer, if your current directory is a Node.js project. + +**Variable**: Smaller sub-components that contain information provided by the module. For example, the "version" variable in the "nodejs" module contains the current version of Node.js. + +By convention, most modules have a prefix of default terminal color (e.g. `via` in "nodejs") and an empty space as a suffix. + +### Strings + +In TOML syntax, [text values](https://toml.io/en/v1.0.0#string) are declared with `'`, `"`, `'''`, or `"""`. + +The following Starship syntax symbols have special usage in a format string and must be escaped to display as that character: `$ [ ] ( )`. + +| Symbol | Type | Notes | +| ------ | ------------------------- | ------------------------------------------------------ | +| `'` | literal string | less escaping | +| `"` | string | more escaping | +| `'''` | multi-line literal string | less escaping | +| `"""` | multi-line string | more escaping, newlines in declarations can be ignored | + +For example: + +```toml +# literal string +format = '☺\☻ ' + +# regular string +format = "☺\\☻ " + +# escaping Starship symbols +format = '\[\$\] ' +``` + +When using line breaks, multi-line declarations can be used. For example, if you want to print a `$` symbol on a new line, the following values for `format` are equivalent: + +```toml +# with literal string +format = ''' + +\$''' + +# with multiline basic string +format = """ + +\\$""" + +# with basic string +format = "\n\\$" +``` + +In multiline basic strings, newlines can be used for formatting without being present in the value by escaping them. + +```toml +format = """ +line1\ +line1\ +line1 +line2\ +line2\ +line2 +""" +``` + +### Format Strings + +Format strings are the format that a module prints all its variables with. Most modules have an entry called `format` that configures the display format of the module. You can use texts, variables and text groups in a format string. + +#### Variable + +A variable contains a `$` symbol followed by the name of the variable. The name of a variable can only contain letters, numbers and `_`. + +For example: + +- `'$version'` is a format string with a variable named `version`. +- `'$git_branch$git_commit'` is a format string with two variables named `git_branch` and `git_commit`. +- `'$git_branch $git_commit'` has the two variables separated with a space. + +#### Text Group + +A text group is made up of two different parts. + +The first part, which is enclosed in a `[]`, is a [format string](#format-strings). You can add texts, variables, or even nested text groups in it. + +In the second part, which is enclosed in a `()`, is a [style string](#style-strings). This can be used to style the first part. + +For example: + +- `'[on](red bold)'` will print a string `on` with bold text colored red. +- `'[⌘ $version](bold green)'` will print a symbol `⌘` followed by the content of variable `version`, with bold text colored green. +- `'[a [b](red) c](green)'` will print `a b c` with `b` red, and `a` and `c` green. + +#### Style Strings + +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). + +- `'fg:green bg:blue'` sets green text on a blue background +- `'bg:blue fg:bright-green'` sets bright green text on a blue background +- `'bold fg:27'` sets bold text with [ANSI color](https://i.stack.imgur.com/KTSQa.png) 27 +- `'underline bg:#bf5700'` sets underlined text on a burnt orange background +- `'bold italic fg:purple'` sets bold italic purple text +- `''` explicitly disables all styling + +Note that what styling looks like will be controlled by your terminal emulator. For example, some terminal emulators will brighten the colors instead of bolding text, and some color themes use the same values for the normal and bright colors. Also, to get italic text, your terminal must support italics. + +#### Conditional Format Strings + +A conditional format string wrapped in `(` and `)` will not render if all variables inside are empty. + +For example: + +- `'(@$region)'` will show nothing if the variable `region` is `None` or empty string, otherwise `@` followed by the value of region. +- `'(some text)'` will always show nothing since there are no variables wrapped in the braces. +- When `$combined` is a shortcut for `\[$a$b\]`, `'($combined)'` will show nothing only if `$a` and `$b` are both `None`. This works the same as `'(\[$a$b\] )'`. + +### Negative matching + +Many modules have `detect_extensions`, `detect_files`, and `detect_folders` variables. These take lists of strings to match or not match. "Negative" options, those which should not be matched, are indicated with a leading '!' character. The presence of _any_ negative indicator in the directory will result in the module not being matched. + +Extensions are matched against both the characters after the last dot in a filename, and the characters after the first dot in a filename. For example, `foo.bar.tar.gz` will be matched against `bar.tar.gz` and `gz` in the `detect_extensions` variable. Files whose name begins with a dot are not considered to have extensions at all. + +To see how this works in practice, you could match TypeScript but not MPEG Transport Stream files thus: + +```toml +detect_extensions = ['ts', '!video.ts', '!audio.ts'] +``` + +## Prompt + +This is the list of prompt-wide configuration options. + +### Options + +| Option | Default | Description | +| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: + +### Example + +```toml +# ~/.config/starship.toml + +# Use custom format +format = ''' +[┌───────────────────>](bold green) +[│](bold green)$directory$rust$package +[└─>](bold green) ''' + +# Wait 10 milliseconds for starship to check files under the current directory. +scan_timeout = 10 + +# Disable the blank line at the start of the prompt +add_newline = false + +# Set 'foo' as custom color palette +palette = 'foo' + +# Define custom colors +[palettes.foo] +# Overwrite existing color +blue = '21' +# Define new color +mustard = '#af8700' +``` + +### Default Prompt Format + +The default `format` is used to define the format of the prompt, if empty or no `format` is provided. The default is as shown: + +```toml +format = '$all' + +# Which is equivalent to +format = """ +$username\ +$hostname\ +$localip\ +$shlvl\ +$singularity\ +$kubernetes\ +$directory\ +$vcsh\ +$fossil_branch\ +$fossil_metrics\ +$git_branch\ +$git_commit\ +$git_state\ +$git_metrics\ +$git_status\ +$hg_branch\ +$pijul_channel\ +$docker_context\ +$package\ +$c\ +$cmake\ +$cobol\ +$daml\ +$dart\ +$deno\ +$dotnet\ +$elixir\ +$elm\ +$erlang\ +$fennel\ +$golang\ +$guix_shell\ +$haskell\ +$haxe\ +$helm\ +$java\ +$julia\ +$kotlin\ +$gradle\ +$lua\ +$nim\ +$nodejs\ +$ocaml\ +$opa\ +$perl\ +$php\ +$pulumi\ +$purescript\ +$python\ +$raku\ +$rlang\ +$red\ +$ruby\ +$rust\ +$scala\ +$solidity\ +$swift\ +$terraform\ +$typst\ +$vlang\ +$vagrant\ +$zig\ +$buf\ +$nix_shell\ +$conda\ +$meson\ +$spack\ +$memory_usage\ +$aws\ +$gcloud\ +$openstack\ +$azure\ +$direnv\ +$env_var\ +$crystal\ +$custom\ +$sudo\ +$cmd_duration\ +$line_break\ +$jobs\ +$battery\ +$time\ +$status\ +$os\ +$container\ +$shell\ +$character""" +``` + +If you just want to extend the default format, you can use `$all`; modules you explicitly add to the format will not be duplicated. Eg. + +```toml +# Move the directory to the second line +format = '$all$directory$character' +``` + +## AWS + +The `aws` module shows the current AWS region and profile and an expiration timer when using temporary credentials. The output of the module uses the `AWS_REGION`, `AWS_DEFAULT_REGION`, and `AWS_PROFILE` env vars and the `~/.aws/config` and `~/.aws/credentials` files as required. + +The module will display a profile only if its credentials are present in `~/.aws/credentials` or if a `credential_process`, `sso_start_url`, or `sso_session` are defined in `~/.aws/config`. Alternatively, having any of the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, or `AWS_SESSION_TOKEN` env vars defined will also suffice. If the option `force_display` is set to `true`, all available information will be displayed even if no credentials per the conditions above are detected. + +When using [aws-vault](https://github.com/99designs/aws-vault) the profile is read from the `AWS_VAULT` env var and the credentials expiration date is read from the `AWS_SESSION_EXPIRATION` env var. + +When using [awsu](https://github.com/kreuzwerker/awsu) the profile is read from the `AWSU_PROFILE` env var. + +When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFILE` env var and the credentials expiration date is read from the `AWSUME_EXPIRATION` env var. + +When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. + +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + +### Options + +| Option | Default | Description | +| ------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `format` | `'on [$symbol($profile )(\($region\) )(\[$duration\] )]($style)'` | The format for the module. | +| `symbol` | `'☁️ '` | The symbol used before displaying the current AWS profile. | +| `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | +| `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | +| `style` | `'bold yellow'` | The style for the module. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | +| `disabled` | `false` | Disables the `AWS` module. | +| `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------------- | ------------------------------------------- | +| region | `ap-northeast-1` | The current AWS region | +| profile | `astronauts` | The current AWS profile | +| duration | `2h27m20s` | The temporary credentials validity duration | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Examples + +#### Display everything + +```toml +# ~/.config/starship.toml + +[aws] +format = 'on [$symbol($profile )(\($region\) )]($style)' +style = 'bold blue' +symbol = '🅰 ' +[aws.region_aliases] +ap-southeast-2 = 'au' +us-east-1 = 'va' +[aws.profile_aliases] +CompanyGroupFrobozzOnCallAccess = 'Frobozz' +``` + +#### Display region + +```toml +# ~/.config/starship.toml + +[aws] +format = 'on [$symbol$region]($style) ' +style = 'bold blue' +symbol = '🅰 ' +[aws.region_aliases] +ap-southeast-2 = 'au' +us-east-1 = 'va' +``` + +#### Display profile + +```toml +# ~/.config/starship.toml + +[aws] +format = 'on [$symbol$profile]($style) ' +style = 'bold blue' +symbol = '🅰 ' +[aws.profile_aliases] +Enterprise_Naming_Scheme-voidstars = 'void**' +``` + +## Azure + +The `azure` module shows the current Azure Subscription. This is based on showing the name of the default subscription or the username, as defined in the `~/.azure/azureProfile.json` file. + +### Options + +| Variable | Default | Description | +| ---------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------- | +| `format` | `'on [$symbol($subscription)]($style) '` | The format for the Azure module to render. | +| `symbol` | `'󰠅 '` | The symbol used in the format. | +| `style` | `'blue bold'` | The style used in the format. | +| `disabled` | `true` | Disables the `azure` module. | +| `subscription_aliases` | `{}` | Table of subscription name aliases to display in addition to Azure subscription name. | + +### Examples + +#### Display Subscription Name + +```toml +# ~/.config/starship.toml + +[azure] +disabled = false +format = 'on [$symbol($subscription)]($style) ' +symbol = '󰠅 ' +style = 'blue bold' +``` + +#### Display Username + +```toml +# ~/.config/starship.toml + +[azure] +disabled = false +format = "on [$symbol($username)]($style) " +symbol = "󰠅 " +style = "blue bold" +``` + +#### Display Subscription Name Alias + +```toml +# ~/.config/starship.toml + +[azure.subscription_aliases] +very-long-subscription-name = 'vlsn' +``` + +## Battery + +The `battery` module shows how charged the device's battery is and its current charging status. The module is only visible when the device's battery is below 10%. + +### Options + +| Option | Default | Description | +| -------------------- | --------------------------------- | --------------------------------------------------- | +| `full_symbol` | `'󰁹 '` | The symbol shown when the battery is full. | +| `charging_symbol` | `'󰂄 '` | The symbol shown when the battery is charging. | +| `discharging_symbol` | `'󰂃 '` | The symbol shown when the battery is discharging. | +| `unknown_symbol` | `'󰁽 '` | The symbol shown when the battery state is unknown. | +| `empty_symbol` | `'󰂎 '` | The symbol shown when the battery state is empty. | +| `format` | `'[$symbol$percentage]($style) '` | The format for the module. | +| `display` | [link](#battery-display) | Display threshold and style for the module. | +| `disabled` | `false` | Disables the `battery` module. | + +### Example + +```toml +# ~/.config/starship.toml + +[battery] +full_symbol = '🔋 ' +charging_symbol = '⚡️ ' +discharging_symbol = '💀 ' +``` + +### Battery Display + +The `display` configuration option is used to define when the battery indicator should be shown (threshold), which symbol would be used (symbol), and what it would like (style). If no `display` is provided. The default is as shown: + +```toml +[[battery.display]] +threshold = 10 +style = 'bold red' +``` + +The default value for the `charging_symbol` and `discharging_symbol` option is respectively the value of `battery`'s `charging_symbol` and `discharging_symbol` option. + +#### Options + +The `display` option is an array of the following table. + +| Option | Default | Description | +| -------------------- | ------------ | --------------------------------------------------------------------------------------------------------- | +| `threshold` | `10` | The upper bound for the display option. | +| `style` | `'red bold'` | The style used if the display option is in use. | +| `charging_symbol` | | Optional symbol displayed if display option is in use, defaults to battery's `charging_symbol` option. | +| `discharging_symbol` | | Optional symbol displayed if display option is in use, defaults to battery's `discharging_symbol` option. | + +#### Example + +```toml +[[battery.display]] # 'bold red' style and discharging_symbol when capacity is between 0% and 10% +threshold = 10 +style = 'bold red' + +[[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% +threshold = 30 +style = 'bold yellow' +discharging_symbol = '💦' + +# when capacity is over 30%, the battery indicator will not be displayed +``` + +## Buf + +The `buf` module shows the currently installed version of [Buf](https://buf.build). By default, the module is shown if all of the following conditions are met: + +- The [`buf`](https://github.com/bufbuild/buf) CLI is installed. +- The current directory contains a [`buf.yaml`](https://docs.buf.build/configuration/v1/buf-yaml), [`buf.gen.yaml`](https://docs.buf.build/configuration/v1/buf-gen-yaml), or [`buf.work.yaml`](https://docs.buf.build/configuration/v1/buf-work-yaml) configuration file. + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------- | ----------------------------------------------------- | +| `format` | `'with [$symbol($version )]($style)'` | The format for the `buf` module. | +| `version_format` | `'v${raw}'` | The version format. | +| `symbol` | `'🐃 '` | The symbol used before displaying the version of Buf. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['buf.yaml', 'buf.gen.yaml', 'buf.work.yaml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `elixir` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| `version` | `v1.0.0` | The version of `buf` | +| `symbol` | | Mirrors the value of option `symbol` | +| `style`* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[buf] +symbol = '🦬 ' +``` + +## Bun + +The `bun` module shows the currently installed version of the [bun](https://bun.sh) JavaScript runtime. By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `bun.lockb` file +- The current directory contains a `bunfig.toml` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🍞 '` | A format string representing the symbol of Bun. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['bun.lockb', 'bunfig.toml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold red'` | The style for the module. | +| `disabled` | `false` | Disables the `bun` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v0.1.4` | The version of `bun` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[bun] +format = 'via [🍔 $version](bold green) ' +``` + +## C + +The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | + +### Variables + +| Variable | Example | Description | +| -------- | ------- | ------------------------------------ | +| name | clang | The name of the compiler | +| version | 13.0.0 | The version of the compiler | +| symbol | | Mirrors the value of option `symbol` | +| style | | Mirrors the value of option `style` | + +NB that `version` is not in the default format. + +### Commands + +The `commands` option accepts a list of commands to determine the compiler version and name. + +Each command is represented as a list of the executable name, followed by its arguments, usually something like `['mycc', '--version']`. Starship will try executing each command until it gets a result on STDOUT. + +If a C compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/). + +### Example + +```toml +# ~/.config/starship.toml + +[c] +format = 'via [$name $version]($style)' +``` + +## Character + +The `character` module shows a character (usually an arrow) beside where the text is entered in your terminal. + +The character will tell you whether the last command was successful or not. It can do this in two ways: + +- changing color (`red`/`green`) +- changing shape (`❯`/`✖`) + +By default it only changes color. If you also want to change its shape take a look at [this example](#with-custom-error-shape). + +::: warning + +`vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). + +::: + +### Options + +| Option | Default | Description | +| --------------------------- | -------------------- | --------------------------------------------------------------------------------------- | +| `format` | `'$symbol '` | The format string used before the text input. | +| `success_symbol` | `'[❯](bold green)'` | The format string used before the text input if the previous command succeeded. | +| `error_symbol` | `'[❯](bold red)'` | The format string used before the text input if the previous command failed. | +| `vimcmd_symbol` | `'[❮](bold green)'` | The format string used before the text input if the shell is in vim normal mode. | +| `vimcmd_replace_one_symbol` | `'[❮](bold purple)'` | The format string used before the text input if the shell is in vim `replace_one` mode. | +| `vimcmd_replace_symbol` | `'[❮](bold purple)'` | The format string used before the text input if the shell is in vim replace mode. | +| `vimcmd_visual_symbol` | `'[❮](bold yellow)'` | The format string used before the text input if the shell is in vim visual mode. | +| `disabled` | `false` | Disables the `character` module. | + +### Variables + +| Variable | Example | Description | +| -------- | ------- | -------------------------------------------------------------------------------------------------------- | +| symbol | | A mirror of either `success_symbol`, `error_symbol`, `vimcmd_symbol` or `vimcmd_replace_one_symbol` etc. | + +### Examples + +#### With custom error shape + +```toml +# ~/.config/starship.toml + +[character] +success_symbol = '[➜](bold green) ' +error_symbol = '[✗](bold red) ' +``` + +#### Without custom error shape + +```toml +# ~/.config/starship.toml + +[character] +success_symbol = '[➜](bold green) ' +error_symbol = '[➜](bold red) ' +``` + +#### With custom vim shape + +```toml +# ~/.config/starship.toml + +[character] +vimcmd_symbol = '[V](bold green) ' +``` + +## CMake + +The `cmake` module shows the currently installed version of [CMake](https://cmake.org/). By default the module will be activated if any of the following conditions are met: + +- The current directory contains a `CMakeLists.txt` file +- The current directory contains a `CMakeCache.txt` file + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'△ '` | The symbol used before the version of cmake. | +| `detect_extensions` | `[]` | Which extensions should trigger this module | +| `detect_files` | `['CMakeLists.txt', 'CMakeCache.txt']` | Which filenames should trigger this module | +| `detect_folders` | `[]` | Which folders should trigger this module | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `cmake` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v3.17.3` | The version of cmake | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +## COBOL / GNUCOBOL + +The `cobol` module shows the currently installed version of COBOL. By default, the module will be shown if any of the following conditions are met: + +- The current directory contains any files ending in `.cob` or `.COB` +- The current directory contains any files ending in `.cbl` or `.CBL` + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `symbol` | `'⚙️ '` | The symbol used before displaying the version of COBOL. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `style` | `'bold blue'` | The style for the module. | +| `detect_extensions` | `['cbl', 'cob', 'CBL', 'COB']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `cobol` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------- | ------------------------------------ | +| version | `v3.1.2.0` | The version of `cobol` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +## Command Duration + +The `cmd_duration` module shows how long the last command took to execute. The module will be shown only if the command took longer than two seconds, or the `min_time` config value, if it exists. + +::: warning Do not hook the DEBUG trap in Bash + +If you are running Starship in `bash`, do not hook the `DEBUG` trap after running `eval $(starship init $0)`, or this module **will** break. + +::: + +Bash users who need preexec-like functionality can use [rcaloras's bash_preexec framework](https://github.com/rcaloras/bash-preexec). Simply define the arrays `preexec_functions` and `precmd_functions` before running `eval $(starship init $0)`, and then proceed as normal. + +### Options + +| Option | Default | Description | +| ---------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `min_time` | `2_000` | Shortest duration to show time for (in milliseconds). | +| `show_milliseconds` | `false` | Show milliseconds in addition to seconds for the duration. | +| `format` | `'took [$duration]($style) '` | The format for the module. | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `false` | Disables the `cmd_duration` module. | +| `show_notifications` | `false` | Show desktop notifications when command completes. | +| `min_time_to_notify` | `45_000` | Shortest duration for notification (in milliseconds). | +| `notification_timeout` | | Duration to show notification for (in milliseconds). If unset, notification timeout will be determined by daemon. Not all notification daemons honor this option. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | --------------------------------------- | +| duration | `16m40s` | The time it took to execute the command | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[cmd_duration] +min_time = 500 +format = 'underwent [$duration](bold yellow)' +``` + +## Conda + +The `conda` module shows the current [Conda](https://docs.conda.io/en/latest/) environment, if `$CONDA_DEFAULT_ENV` is set. + +::: tip + +This does not suppress conda's own prompt modifier, you may want to run `conda config --set changeps1 False`. + +::: + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `truncation_length` | `1` | The number of directories the environment path should be truncated to, if the environment was created via `conda create -p [path]`. `0` means no truncation. Also see the [`directory`](#directory) module. | +| `symbol` | `'🅒 '` | The symbol used before the environment name. | +| `style` | `'bold green'` | The style for the module. | +| `format` | `'via [$symbol$environment]($style) '` | The format for the module. | +| `ignore_base` | `true` | Ignores `base` environment when activated. | +| `disabled` | `false` | Disables the `conda` module. | + +### Variables + +| Variable | Example | Description | +| ----------- | ------------ | ------------------------------------ | +| environment | `astronauts` | The current conda environment | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[conda] +format = '[$symbol$environment](dimmed green) ' +``` + +## Container + +The `container` module displays a symbol and container name, if inside a container. + +### Options + +| Option | Default | Description | +| ---------- | ---------------------------------- | ----------------------------------------- | +| `symbol` | `'⬢'` | The symbol shown, when inside a container | +| `style` | `'bold red dimmed'` | The style for the module. | +| `format` | `'[$symbol \[$name\]]($style) '` | The format for the module. | +| `disabled` | `false` | Disables the `container` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------- | ------------------------------------ | +| name | `fedora-toolbox:35` | The name of the container | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[container] +format = '[$symbol \[$name\]]($style) ' +``` + +## Crystal + +The `crystal` module shows the currently installed version of [Crystal](https://crystal-lang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `shard.yml` file +- The current directory contains a `.cr` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `symbol` | `'🔮 '` | The symbol used before displaying the version of crystal. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `style` | `'bold red'` | The style for the module. | +| `detect_extensions` | `['cr']` | Which extensions should trigger this module. | +| `detect_files` | `['shard.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `crystal` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v0.32.1` | The version of `crystal` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[crystal] +format = 'via [✨ $version](bold blue) ' +``` + +## Daml + +The `daml` module shows the currently used [Daml](https://www.digitalasset.com/developers) SDK version when you are in the root directory of your Daml project. The `sdk-version` in the `daml.yaml` file will be used, unless it's overridden by the `DAML_SDK_VERSION` environment variable. By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `daml.yaml` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'Λ '` | A format string representing the symbol of Daml | +| `style` | `'bold cyan'` | The style for the module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['daml.yaml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v2.2.0` | The version of `daml` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[daml] +format = 'via [D $version](bold bright-green) ' +``` + +## Dart + +The `dart` module shows the currently installed version of [Dart](https://dart.dev/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a file with `.dart` extension +- The current directory contains a `.dart_tool` directory +- The current directory contains a `pubspec.yaml`, `pubspec.yml` or `pubspec.lock` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🎯 '` | A format string representing the symbol of Dart | +| `detect_extensions` | `['dart']` | Which extensions should trigger this module. | +| `detect_files` | `['pubspec.yaml', 'pubspec.yml', 'pubspec.lock']` | Which filenames should trigger this module. | +| `detect_folders` | `['.dart_tool']` | Which folders should trigger this module. | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `dart` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v2.8.4` | The version of `dart` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[dart] +format = 'via [🔰 $version](bold red) ' +``` + +## Deno + +The `deno` module shows you your currently installed version of [Deno](https://deno.land/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `deno.json`, `deno.jsonc`, `mod.ts`, `mod.js`, `deps.ts` or `deps.js` file + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🦕 '` | A format string representing the symbol of Deno | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['deno.json', 'deno.jsonc', 'mod.ts', 'mod.js', 'deps.ts', 'deps.js']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'green bold'` | The style for the module. | +| `disabled` | `false` | Disables the `deno` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v1.8.3` | The version of `deno` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +### Example + +```toml +# ~/.config/starship.toml + +[deno] +format = 'via [🦕 $version](green bold) ' +``` + +## Directory + +The `directory` module shows the path to your current directory, truncated to three parent folders. Your directory will also be truncated to the root of the git repo that you're currently in. + +When using the `fish_style_pwd_dir_length` option, instead of hiding the path that is truncated, you will see a shortened name of each directory based on the number you enable for the option. + +For example, given `~/Dev/Nix/nixpkgs/pkgs` where `nixpkgs` is the repo root, and the option set to `1`. You will now see `~/D/N/nixpkgs/pkgs`, whereas before it would have been `nixpkgs/pkgs`. + +### Options + +| Option | Default | Description | +| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `truncation_length` | `3` | The number of parent folders that the current directory should be truncated to. | +| `truncate_to_repo` | `true` | Whether or not to truncate to the root of the git repo that you're currently in. | +| `format` | `'[$path]($style)[$read_only]($read_only_style) '` | The format for the module. | +| `style` | `'bold cyan'` | The style for the module. | +| `disabled` | `false` | Disables the `directory` module. | +| `read_only` | `'🔒'` | The symbol indicating current directory is read only. | +| `read_only_style` | `'red'` | The style for the read only symbol. | +| `truncation_symbol` | `''` | The symbol to prefix to truncated paths. eg: '…/' | +| `before_repo_root_style` | | The style for the path segment above the root of the git repo. The default value is equivalent to `style`. | +| `repo_root_style` | | The style for the root of the git repo. The default value is equivalent to `style`. | +| `repo_root_format` | `'[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) '` | The format of a git repo when `before_repo_root_style` and `repo_root_style` is defined. | +| `home_symbol` | `'~'` | The symbol indicating home directory. | +| `use_os_path_sep` | `true` | Use the OS specific path separator instead of always using `/` (e.g. `\` on Windows) | + +
+This module has a few advanced configuration options that control how the directory is displayed. + +| Advanced Option | Default | Description | +| --------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `substitutions` | | A table of substitutions to be made to the path. | +| `fish_style_pwd_dir_length` | `0` | The number of characters to use when applying fish shell pwd path logic. | +| `use_logical_path` | `true` | If `true` render the logical path sourced from the shell via `PWD` or `--logical-path`. If `false` instead render the physical filesystem path with symlinks resolved. | + +`substitutions` allows you to define arbitrary replacements for literal strings that occur in the path, for example long network prefixes or development directories (i.e. Java). Note that this will disable the fish style PWD. + +```toml +[directory.substitutions] +'/Volumes/network/path' = '/net' +'src/com/long/java/path' = 'mypath' +``` + +`fish_style_pwd_dir_length` interacts with the standard truncation options in a way that can be surprising at first: if it's non-zero, the components of the path that would normally be truncated are instead displayed with that many characters. For example, the path `/built/this/city/on/rock/and/roll`, which would normally be displayed as `rock/and/roll`, would be displayed as `/b/t/c/o/rock/and/roll` with `fish_style_pwd_dir_length = 1`--the path components that would normally be removed are displayed with a single character. For `fish_style_pwd_dir_length = 2`, it would be `/bu/th/ci/on/rock/and/roll`. + +
+ +### Variables + +| Variable | Example | Description | +| --------- | --------------------- | ----------------------------------- | +| path | `'D:/Projects'` | The current directory path | +| style\* | `'black bold dimmed'` | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +
+The git repos have additional variables. + +Let us consider the path `/path/to/home/git_repo/src/lib` + +| Variable | Example | Description | +| ------------------ | --------------------- | --------------------------------------- | +| before_root_path | `'/path/to/home/'` | The path before git root directory path | +| repo_root | `'git_repo'` | The git root directory name | +| path | `'/src/lib'` | The remaining path | +| style | `'black bold dimmed'` | Mirrors the value of option `style` | +| repo_root_style | `'underline white'` | Style for git root directory name | + +
+ +### Example + +```toml +# ~/.config/starship.toml + +[directory] +truncation_length = 8 +truncation_symbol = '…/' +``` + +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + +## Docker Context + +The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `format` | `'via [$symbol$context]($style) '` | The format for the module. | +| `symbol` | `'🐳 '` | The symbol used before displaying the Docker context. | +| `only_with_files` | `true` | Only show when there's a match | +| `detect_extensions` | `[]` | Which extensions should trigger this module (needs `only_with_files` to be true). | +| `detect_files` | `['docker-compose.yml', 'docker-compose.yaml', 'Dockerfile']` | Which filenames should trigger this module (needs `only_with_files` to be true). | +| `detect_folders` | `[]` | Which folders should trigger this module (needs `only_with_files` to be true). | +| `style` | `'blue bold'` | The style for the module. | +| `disabled` | `false` | Disables the `docker_context` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------------- | ------------------------------------ | +| context | `test_context` | The current docker context | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[docker_context] +format = 'via [🐋 $context](blue bold)' +``` + +## Dotnet + +The `dotnet` module shows the relevant version of the [.NET Core SDK](https://dotnet.microsoft.com/) for the current directory. If the SDK has been pinned in the current directory, the pinned version is shown. Otherwise the module shows the latest installed version of the SDK. + +By default this module will only be shown in your prompt when one or more of the following files are present in the current directory: + +- `global.json` +- `project.json` +- `Directory.Build.props` +- `Directory.Build.targets` +- `Packages.props` +- `*.csproj` +- `*.fsproj` +- `*.xproj` + +You'll also need the .NET Core SDK installed in order to use it correctly. + +Internally, this module uses its own mechanism for version detection. Typically it is twice as fast as running `dotnet --version`, but it may show an incorrect version if your .NET project has an unusual directory layout. If accuracy is more important than speed, you can disable the mechanism by setting `heuristic = false` in the module options. + +The module will also show the Target Framework Moniker () when there is a `.csproj` file in the current directory. + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )(🎯 $tfm )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'.NET '` | The symbol used before displaying the version of dotnet. | +| `heuristic` | `true` | Use faster version detection to keep starship snappy. | +| `detect_extensions` | `['csproj', 'fsproj', 'xproj']` | Which extensions should trigger this module. | +| `detect_files` | `['global.json', 'project.json', 'Directory.Build.props', 'Directory.Build.targets', 'Packages.props']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `dotnet` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------------- | ------------------------------------------------------------------ | +| version | `v3.1.201` | The version of `dotnet` sdk | +| tfm | `netstandard2.0` | The Target Framework Moniker that the current project is targeting | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[dotnet] +symbol = '🥅 ' +style = 'green' +heuristic = false +``` + +## Elixir + +The `elixir` module shows the currently installed version of [Elixir](https://elixir-lang.org/) and [Erlang/OTP](https://erlang.org/doc/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `mix.exs` file. + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version \(OTP $otp_version\) )]($style)'` | The format for the module elixir. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'💧 '` | The symbol used before displaying the version of Elixir/Erlang. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['mix.exs']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `style` | `'bold purple'` | The style for the module. | +| `disabled` | `false` | Disables the `elixir` module. | + +### Variables + +| Variable | Example | Description | +| ----------- | ------- | ------------------------------------ | +| version | `v1.10` | The version of `elixir` | +| otp_version | | The otp version of `elixir` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[elixir] +symbol = '🔮 ' +``` + +## Elm + +The `elm` module shows the currently installed version of [Elm](https://elm-lang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `elm.json` file +- The current directory contains a `elm-package.json` file +- The current directory contains a `.elm-version` file +- The current directory contains a `elm-stuff` folder +- The current directory contains `*.elm` files + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🌳 '` | A format string representing the symbol of Elm. | +| `detect_extensions` | `['elm']` | Which extensions should trigger this module. | +| `detect_files` | `['elm.json', 'elm-package.json', '.elm-version']` | Which filenames should trigger this module. | +| `detect_folders` | `['elm-stuff']` | Which folders should trigger this modules. | +| `style` | `'cyan bold'` | The style for the module. | +| `disabled` | `false` | Disables the `elm` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v0.19.1` | The version of `elm` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[elm] +format = 'via [ $version](cyan bold) ' +``` + +## Environment Variable + +The `env_var` module displays the current value of a selected environment variables. The module will be shown only if any of the following conditions are met: + +- The `variable` configuration option matches an existing environment variable +- The `variable` configuration option is not defined, but the `default` configuration option is + +::: tip + +The order in which env_var modules are shown can be individually set by including `${env_var.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `env_var` module will simply show all env_var modules in the order they were defined. + +::: + +::: tip + +Multiple environmental variables can be displayed by using a `.`. (see example) If the `variable` configuration option is not set, the module will display value of variable under the name of text after the `.` character. + +Example: following configuration will display value of USER environment variable + +```toml +# ~/.config/starship.toml + +[env_var.USER] +default = 'unknown user' +``` + +::: + +### Options + +| Option | Default | Description | +| ------------- | ------------------------------ | ---------------------------------------------------------------------------- | +| `symbol` | `""` | The symbol used before displaying the variable value. | +| `variable` | | The environment variable to be displayed. | +| `default` | | The default value to be displayed when the selected variable is not defined. | +| `format` | `"with [$env_value]($style) "` | The format for the module. | +| `description` | `""` | The description of the module that is shown when running `starship explain`. | +| `disabled` | `false` | Disables the `env_var` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------------------------------- | ------------------------------------------ | +| env_value | `Windows NT` (if _variable_ would be `$OS`) | The environment value of option `variable` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | `black bold dimmed` | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[env_var] +variable = 'SHELL' +default = 'unknown shell' +``` + +Displaying multiple environmental variables: + +```toml +# ~/.config/starship.toml + +[env_var.SHELL] +variable = 'SHELL' +default = 'unknown shell' +[env_var.USER] +default = 'unknown user' +``` + +## Erlang + +The `erlang` module shows the currently installed version of [Erlang/OTP](https://erlang.org/doc/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `rebar.config` file. +- The current directory contains a `erlang.mk` file. + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `' '` | The symbol used before displaying the version of erlang. | +| `style` | `'bold red'` | The style for the module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['rebar.config', 'elang.mk']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `disabled` | `false` | Disables the `erlang` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v22.1.3` | The version of `erlang` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[erlang] +format = 'via [e $version](bold red) ' +``` + +## Fennel + +The `fennel` module shows the currently installed version of [Fennel](https://fennel-lang.org). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a file with the `.fnl` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | +| `style` | `'bold green'` | The style for the module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `disabled` | `false` | Disables the `fennel` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v1.2.1` | The version of `fennel` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fennel] +symbol = '⫰ ' +``` + +## Fill + +The `fill` module fills any extra space on the line with a symbol. If multiple `fill` modules are present in a line they will split the space evenly between them. This is useful for aligning other modules. + +### Options + +| Option | Default | Description | +| ---------- | -------------- | --------------------------------- | +| `symbol` | `'.'` | The symbol used to fill the line. | +| `style` | `'bold black'` | The style for the module. | +| `disabled` | `false` | Disables the `fill` module | + +### Example + +```toml +# ~/.config/starship.toml +format = 'AA $fill BB $fill CC' + +[fill] +symbol = '-' +style = 'bold green' +``` + +Produces a prompt that looks like: + +``` +AA -------------------------------------------- BB -------------------------------------------- CC +``` + +## Fossil Branch + +The `fossil_branch` module shows the name of the active branch of the check-out in your current directory. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------- | ---------------------------------------------------------------------------------------- | +| `format` | `'on [$symbol$branch]($style) '` | The format for the module. Use `'$branch'` to refer to the current branch name. | +| `symbol` | `' '` | The symbol used before the branch name of the check-out in your current directory. | +| `style` | `'bold purple'` | The style for the module. | +| `truncation_length` | `2^63 - 1` | Truncates a Fossil branch name to `N` graphemes | +| `truncation_symbol` | `'…'` | The symbol used to indicate a branch name was truncated. You can use `''` for no symbol. | +| `disabled` | `true` | Disables the `fossil_branch` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| branch | `trunk` | The active Fossil branch | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_branch] +symbol = '🦎 ' +truncation_length = 4 +truncation_symbol = '' +``` + +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + +## Google Cloud (`gcloud`) + +The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. + +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. + +### Options + +| Option | Default | Description | +| ----------------- | ---------------------------------------------------------- | ---------------------------------------------------------------- | +| `format` | `'on [$symbol$account(@$domain)(\($region\))]($style) '` | The format for the module. | +| `symbol` | `'☁️ '` | The symbol used before displaying the current GCP profile. | +| `region_aliases` | `{}` | Table of region aliases to display in addition to the GCP name. | +| `project_aliases` | `{}` | Table of project aliases to display in addition to the GCP name. | +| `detect_env_vars` | `[]` | Which environmental variables should trigger this module | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `gcloud` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------- | ------------------------------------------------------------------ | +| region | `us-central1` | The current GCP region | +| account | `foo` | The current GCP profile | +| domain | `example.com` | The current GCP profile domain | +| project | | The current GCP project | +| active | `default` | The active config name written in `~/.config/gcloud/active_config` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Examples + +#### Display account and project + +```toml +# ~/.config/starship.toml + +[gcloud] +format = 'on [$symbol$account(@$domain)(\($project\))]($style) ' +``` + +#### Display active config name only + +```toml +# ~/.config/starship.toml + +[gcloud] +format = '[$symbol$active]($style) ' +style = 'bold yellow' +``` + +#### Display account and aliased region + +```toml +# ~/.config/starship.toml + +[gcloud] +symbol = '️🇬️ ' +[gcloud.region_aliases] +us-central1 = 'uc1' +asia-northeast1 = 'an1' +``` + +#### Display account and aliased project + +```toml +# ~/.config/starship.toml + +[gcloud] +format = 'on [$symbol$account(@$domain)(\($project\))]($style) ' +[gcloud.project_aliases] +very-long-project-name = 'vlpn' +``` + +## Git Branch + +The `git_branch` module shows the active branch of the repo in your current directory. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `always_show_remote` | `false` | Shows the remote tracking branch name, even if it is equal to the local branch name. | +| `format` | `'on [$symbol$branch(:$remote_branch)]($style) '` | The format for the module. Use `'$branch'` to refer to the current branch name. | +| `symbol` | `' '` | A format string representing the symbol of git branch. | +| `style` | `'bold purple'` | The style for the module. | +| `truncation_length` | `2^63 - 1` | Truncates a git branch to `N` graphemes. | +| `truncation_symbol` | `'…'` | The symbol used to indicate a branch name was truncated. You can use `''` for no symbol. | +| `only_attached` | `false` | Only show the branch name when not in a detached `HEAD` state. | +| `ignore_branches` | `[]` | A list of names to avoid displaying. Useful for 'master' or 'main'. | +| `disabled` | `false` | Disables the `git_branch` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | -------- | ------------------------------------------------------------------------------------------------------ | +| branch | `master` | The current branch name, falls back to `HEAD` if there's no current branch (e.g. git detached `HEAD`). | +| remote_name | `origin` | The remote name. | +| remote_branch | `master` | The name of the branch tracked on `remote_name`. | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[git_branch] +symbol = '🌱 ' +truncation_length = 4 +truncation_symbol = '' +ignore_branches = ['master', 'main'] +``` + +## Git Commit + +The `git_commit` module shows the current commit hash and also the tag (if any) of the repo in your current directory. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------ | ------------------------------------------------------------------------------------ | +| `commit_hash_length` | `7` | The length of the displayed git commit hash. | +| `format` | `'[\($hash$tag\)]($style) '` | The format for the module. | +| `style` | `'bold green'` | The style for the module. | +| `only_detached` | `true` | Only show git commit hash when in detached `HEAD` state | +| `tag_disabled` | `true` | Disables showing tag info in `git_commit` module. | +| `tag_max_candidates` | `0` | How many commits to consider for tag display. The default only allows exact matches. | +| `tag_symbol` | `' 🏷 '` | Tag symbol prefixing the info shown | +| `disabled` | `false` | Disables the `git_commit` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | -------------------------------------------- | +| hash | `b703eb3` | The current git commit hash | +| tag | `v1.0.0` | The tag name if showing tag info is enabled. | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[git_commit] +commit_hash_length = 4 +tag_symbol = '🔖 ' +``` + +## Git State + +The `git_state` module will show in directories which are part of a git repository, and where there is an operation in progress, such as: _REBASING_, _BISECTING_, etc. If there is progress information (e.g., REBASING 3/10), that information will be shown too. + +### Options + +| Option | Default | Description | +| -------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `rebase` | `'REBASING'` | A format string displayed when a `rebase` is in progress. | +| `merge` | `'MERGING'` | A format string displayed when a `merge` is in progress. | +| `revert` | `'REVERTING'` | A format string displayed when a `revert` is in progress. | +| `cherry_pick` | `'CHERRY-PICKING'` | A format string displayed when a `cherry-pick` is in progress. | +| `bisect` | `'BISECTING'` | A format string displayed when a `bisect` is in progress. | +| `am` | `'AM'` | A format string displayed when an `apply-mailbox` (`git am`) is in progress. | +| `am_or_rebase` | `'AM/REBASE'` | A format string displayed when an ambiguous `apply-mailbox` or `rebase` is in progress. | +| `style` | `'bold yellow'` | The style for the module. | +| `format` | `'\([$state( $progress_current/$progress_total)]($style)\) '` | The format for the module. | +| `disabled` | `false` | Disables the `git_state` module. | + +### Variables + +| Variable | Example | Description | +| ---------------- | ---------- | ----------------------------------- | +| state | `REBASING` | The current state of the repo | +| progress_current | `1` | The current operation progress | +| progress_total | `2` | The total operation progress | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[git_state] +format = '[\($state( $progress_current of $progress_total)\)]($style) ' +cherry_pick = '[🍒 PICKING](bold red)' +``` + +## Git Metrics + +The `git_metrics` module will show the number of added and deleted lines in the current git repository. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `disabled` | `true` | Disables the `git_metrics` module. | +| `ignore_submodules` | `false` | Ignore changes to submodules | + +### Variables + +| Variable | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[git_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + +## Git Status + +The `git_status` module shows symbols representing the state of the repo in your current directory. + +::: tip + +The Git Status module is very slow in Windows directories (for example under `/mnt/c/`) when in a WSL environment. You can disable the module or use the `windows_starship` option to use a Windows-native Starship executable to compute `git_status` for those paths. + +::: + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `format` | `'([\[$all_status$ahead_behind\]]($style) )'` | The default format for `git_status` | +| `conflicted` | `'='` | This branch has merge conflicts. | +| `ahead` | `'⇡'` | The format of `ahead` | +| `behind` | `'⇣'` | The format of `behind` | +| `diverged` | `'⇕'` | The format of `diverged` | +| `up_to_date` | `''` | The format of `up_to_date` | +| `untracked` | `'?'` | The format of `untracked` | +| `stashed` | `'$'` | The format of `stashed` | +| `modified` | `'!'` | The format of `modified` | +| `staged` | `'+'` | The format of `staged` | +| `renamed` | `'»'` | The format of `renamed` | +| `deleted` | `'✘'` | The format of `deleted` | +| `typechanged` | `""` | The format of `typechange` | +| `style` | `'bold red'` | The style for the module. | +| `ignore_submodules` | `false` | Ignore changes to submodules. | +| `disabled` | `false` | Disables the `git_status` module. | +| `windows_starship` | | Use this (Linux) path to a Windows Starship executable to render `git_status` when on Windows paths in WSL. | + +### Variables + +The following variables can be used in `format`: + +| Variable | Description | +| -------------- | ------------------------------------------------------------------------------------------------------------- | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | +| `conflicted` | Displays `conflicted` when this branch has merge conflicts. | +| `untracked` | Displays `untracked` when there are untracked files in the working directory. | +| `stashed` | Displays `stashed` when a stash exists for the local repository. | +| `modified` | Displays `modified` when there are file modifications in the working directory. | +| `staged` | Displays `staged` when a new file has been added to the staging area. | +| `renamed` | Displays `renamed` when a renamed file has been added to the staging area. | +| `deleted` | Displays `deleted` when a file's deletion has been added to the staging area. | +| `typechanged` | Displays `typechange` when a file's type has been changed in the staging area. | +| style\* | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +The following variables can be used in `diverged`: + +| Variable | Description | +| -------------- | ---------------------------------------------- | +| `ahead_count` | Number of commits ahead of the tracking branch | +| `behind_count` | Number of commits behind the tracking branch | + +The following variables can be used in `conflicted`, `ahead`, `behind`, `untracked`, `stashed`, `modified`, `staged`, `renamed` and `deleted`: + +| Variable | Description | +| -------- | ------------------------ | +| `count` | Show the number of files | + +### Example + +```toml +# ~/.config/starship.toml + +[git_status] +conflicted = '🏳' +ahead = '🏎💨' +behind = '😰' +diverged = '😵' +up_to_date = '✓' +untracked = '🤷' +stashed = '📦' +modified = '📝' +staged = '[++\($count\)](green)' +renamed = '👅' +deleted = '🗑' +``` + +Show ahead/behind count of the branch being tracked + +```toml +# ~/.config/starship.toml + +[git_status] +ahead = '⇡${count}' +diverged = '⇕⇡${ahead_count}⇣${behind_count}' +behind = '⇣${count}' +``` + +Use Windows Starship executable on Windows paths in WSL + +```toml +# ~/.config/starship.toml + +[git_status] +windows_starship = '/mnt/c/Users/username/scoop/apps/starship/current/starship.exe' +``` + +## Go + +The `golang` module shows the currently installed version of [Go](https://golang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `go.mod` file +- The current directory contains a `go.sum` file +- The current directory contains a `go.work` file +- The current directory contains a `glide.yaml` file +- The current directory contains a `Gopkg.yml` file +- The current directory contains a `Gopkg.lock` file +- The current directory contains a `.go-version` file +- The current directory contains a `Godeps` directory +- The current directory contains a file with the `.go` extension + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐹 '` | A format string representing the symbol of Go. | +| `detect_extensions` | `['go']` | Which extensions should trigger this module. | +| `detect_files` | `['go.mod', 'go.sum', 'go.work', 'glide.yaml', 'Gopkg.yml', 'Gopkg.lock', '.go-version']` | Which filenames should trigger this module. | +| `detect_folders` | `['Godeps']` | Which folders should trigger this module. | +| `style` | `'bold cyan'` | The style for the module. | +| `not_capable_style` | `'bold red'` | The style for the module when the go directive in the go.mod file does not match the installed Go version. | +| `disabled` | `false` | Disables the `golang` module. | + +### Variables + +| Variable | Example | Description | +| ----------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| version | `v1.12.1` | The version of `go` | +| mod_version | `1.16` | `go` version requirement as set in the go directive of `go.mod`. Will only show if the version requirement does not match the `go` version. | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[golang] +format = 'via [🏎💨 $version](bold cyan) ' +``` + +### Using `mod_version` + +```toml +# ~/.config/starship.toml + +[golang] +format = 'via [$symbol($version )($mod_version )]($style)' +``` + +## Guix-shell + +The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-shell.html) environment. The module will be shown when inside a guix-shell environment. + +### Options + +| Option | Default | Description | +| ---------- | -------------------------- | ------------------------------------------------------ | +| `format` | `'via [$symbol]($style) '` | The format for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | +| `disabled` | `false` | Disables the `guix_shell` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[guix_shell] +disabled = true +format = 'via [🐂](yellow bold) ' +``` + +## Gradle + +The `gradle` module shows the version of the [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html) currently used in the project directory. + +By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `gradle/wrapper/gradle-wrapper.properties` directory. +- The current directory contains a file ending with `.gradle` or `.gradle.kts`. + +The `gradle` module is only able to read your Gradle Wrapper version from your config file, we don't execute your wrapper, because of the security concerns. + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | +| `disabled` | `false` | Disables the `gradle` module. | +| `recursive` | `false` | Enables recursive finding for the `gradle` directory. | + +### Variables + +| Variable | Example | Description | +| -------- | -------- | ------------------------------------ | +| version | `v7.5.1` | The version of `gradle` | +| symbol | | Mirrors the value of option `symbol` | +| style* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +## Haskell + +The `haskell` module finds the current selected GHC version and/or the selected Stack snapshot. + +By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `stack.yaml` file +- The current directory contains any `.hs`, `.cabal`, or `.hs-boot` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | -------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `symbol` | `'λ '` | A format string representing the symbol of Haskell | +| `detect_extensions` | `['hs', 'cabal', 'hs-boot']` | Which extensions should trigger this module. | +| `detect_files` | `['stack.yaml', 'cabal.project']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold purple'` | The style for the module. | +| `disabled` | `false` | Disables the `haskell` module. | + +### Variables + +| Variable | Example | Description | +| -------------- | ----------- | --------------------------------------------------------------------------------------- | +| version | | `ghc_version` or `snapshot` depending on whether the current project is a Stack project | +| snapshot | `lts-18.12` | Currently selected Stack snapshot | +| ghc\_version | `9.2.1` | Currently installed GHC version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +## Haxe + +The `haxe` module shows the currently installed version of [Haxe](https://haxe.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `project.xml`, `Project.xml`, `application.xml`, `haxelib.json`, `hxformat.json` or `.haxerc` file +- The current directory contains a `.haxelib` or a `haxe_libraries` directory +- The current directory contains a file with the `.hx` or `.hxml` extension + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | +| `disabled` | `false` | Disables the `haxe` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v4.2.5` | The version of `haxe` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[haxe] +format = "via [⌘ $version](bold fg:202) " +``` + +## Helm + +The `helm` module shows the currently installed version of [Helm](https://helm.sh/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `helmfile.yaml` file +- The current directory contains a `Chart.yaml` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['helmfile.yaml', 'Chart.yaml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `symbol` | `'⎈ '` | A format string representing the symbol of Helm. | +| `style` | `'bold white'` | The style for the module. | +| `disabled` | `false` | Disables the `helm` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v3.1.1` | The version of `helm` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[helm] +format = 'via [⎈ $version](bold white) ' +``` + +## Hostname + +The `hostname` module shows the system hostname. + +### Options + +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | + +### Variables + +| Variable | Example | Description | +| ---------- | ---------- | ----------------------------------------------------- | +| hostname | `computer` | The hostname of the computer | +| style\* | | Mirrors the value of option `style` | +| ssh_symbol | `'🌏 '` | The symbol to represent when connected to SSH session | + +*: This variable can only be used as a part of a style string + +### Examples + +#### Always show the hostname + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +format = '[$ssh_symbol](bold blue) on [$hostname](bold red) ' +trim_at = '.companyname.com' +disabled = false +``` + +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + +## Java + +The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `pom.xml`, `build.gradle.kts`, `build.sbt`, `.java-version`, `deps.edn`, `project.clj`, `build.boot`, or `.sdkmanrc` file +- The current directory contains a file with the `.java`, `.class`, `.gradle`, `.jar`, `.clj`, or `.cljc` extension + +### Options + +| Option | Default | Description | +| ------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [${symbol}(${version} )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['java', 'class', 'gradle', 'jar', 'cljs', 'cljc']` | Which extensions should trigger this module. | +| `detect_files` | `['pom.xml', 'build.gradle.kts', 'build.sbt', '.java-version', 'deps.edn', 'project.clj', 'build.boot', '.sdkmanrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `symbol` | `'☕ '` | A format string representing the symbol of Java | +| `style` | `'red dimmed'` | The style for the module. | +| `disabled` | `false` | Disables the `java` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| version | `v14` | The version of `java` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[java] +symbol = '🌟 ' +``` + +## Jobs + +The `jobs` module shows the current number of jobs running. The module will be shown only if there are background jobs running. The module will show the number of jobs running if there are at least 2 jobs, or more than the `number_threshold` config value, if it exists. The module will show a symbol if there is at least 1 job, or more than the `symbol_threshold` config value, if it exists. You can set both values to 0 in order to _always_ show the symbol and number of jobs, even if there are 0 jobs running. + +The default functionality is: + +- 0 jobs -> Nothing is shown. +- 1 job -> `symbol` is shown. +- 2 jobs or more -> `symbol` + `number` are shown. + +::: warning + +This module is not supported on tcsh and nu. + +::: + +::: warning + +The `threshold` option is deprecated, but if you want to use it, the module will show the number of jobs running if there is more than 1 job, or more than the `threshold` config value, if it exists. If `threshold` is set to 0, then the module will also show when there are 0 jobs running. + +::: + +### Options + +| Option | Default | Description | +| ------------------ | ----------------------------- | ------------------------------------------------------------------------ | +| `threshold`* | `1` | Show number of jobs if exceeded. | +| `symbol_threshold` | `1` | Show `symbol` if the job count is at least `symbol_threshold`. | +| `number_threshold` | `2` | Show the number of jobs if the job count is at least `number_threshold`. | +| `format` | `'[$symbol$number]($style) '` | The format for the module. | +| `symbol` | `'✦'` | The string used to represent the `symbol` variable. | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `jobs` module. | + +*: This option is deprecated, please use the `number_threshold` and `symbol_threshold` options instead. + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| number | `1` | The number of jobs | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[jobs] +symbol = '+ ' +number_threshold = 4 +symbol_threshold = 0 +``` + +## Julia + +The `julia` module shows the currently installed version of [Julia](https://julialang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `Project.toml` file +- The current directory contains a `Manifest.toml` file +- The current directory contains a file with the `.jl` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['jl']` | Which extensions should trigger this module. | +| `detect_files` | `['Project.toml', 'Manifest.toml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `symbol` | `'ஃ '` | A format string representing the symbol of Julia. | +| `style` | `'bold purple'` | The style for the module. | +| `disabled` | `false` | Disables the `julia` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v1.4.0` | The version of `julia` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[julia] +symbol = '∴ ' +``` + +## Kotlin + +The `kotlin` module shows the currently installed version of [Kotlin](https://kotlinlang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `.kt` or a `.kts` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['kt', 'kts']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `symbol` | `'🅺 '` | A format string representing the symbol of Kotlin. | +| `style` | `'bold blue'` | The style for the module. | +| `kotlin_binary` | `'kotlin'` | Configures the kotlin binary that Starship executes when getting the version. | +| `disabled` | `false` | Disables the `kotlin` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v1.4.21` | The version of `kotlin` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[kotlin] +symbol = '🅺 ' +``` + +```toml +# ~/.config/starship.toml + +[kotlin] +# Uses the Kotlin Compiler binary to get the installed version +kotlin_binary = 'kotlinc' +``` + +## Kubernetes + +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +When the module is enabled it will always be active, unless any of `detect_extensions`, `detect_files` or `detect_folders` have been set in which case the module will only be active in directories that match those conditions. + +::: + +### Options + +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + +| Option | Default | Description | +| ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | +| `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | +| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | +| `style` | `'cyan bold'` | The style for the module. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | +| `disabled` | `true` | Disables the `kubernetes` module. | + +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + +### Variables + +| Variable | Example | Description | +| --------- | -------------------- | ---------------------------------------- | +| context | `starship-context` | The current kubernetes context name | +| namespace | `starship-namespace` | If set, the current kubernetes namespace | +| user | `starship-user` | If set, the current kubernetes user | +| cluster | `starship-cluster` | If set, the current kubernetes cluster | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[kubernetes] +format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' +disabled = false +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] +``` + +Only show the module in directories that contain a `k8s` file. + +```toml +# ~/.config/starship.toml + +[kubernetes] +disabled = false +detect_files = ['k8s'] +``` + +#### Kubernetes Context specific config + +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. + +```toml +# ~/.config/starship.toml + +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups +# Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. +# The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) +# and renames every matching kube context into a more readable format (`gke-cluster-name`): +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" +``` + +## Line Break + +The `line_break` module separates the prompt into two lines. + +### Options + +| Option | Default | Description | +| ---------- | ------- | ------------------------------------------------------------------ | +| `disabled` | `false` | Disables the `line_break` module, making the prompt a single line. | + +### Example + +```toml +# ~/.config/starship.toml + +[line_break] +disabled = true +``` + +## Local IP + +The `localip` module shows the IPv4 address of the primary network interface. + +### Options + +| Option | Default | Description | +| ---------- | ------------------------- | ------------------------------------------------------ | +| `ssh_only` | `true` | Only show IP address when connected to an SSH session. | +| `format` | `'[$localipv4]($style) '` | The format for the module. | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `true` | Disables the `localip` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------ | ----------------------------------- | +| localipv4 | 192.168.1.13 | Contains the primary IPv4 address | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[localip] +ssh_only = false +format = '@[$localipv4](bold red) ' +disabled = false +``` + +## Lua + +The `lua` module shows the currently installed version of [Lua](http://www.lua.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `.lua-version` file +- The current directory contains a `lua` directory +- The current directory contains a file with the `.lua` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | -------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🌙 '` | A format string representing the symbol of Lua. | +| `detect_extensions` | `['lua']` | Which extensions should trigger this module. | +| `detect_files` | `['.lua-version']` | Which filenames should trigger this module. | +| `detect_folders` | `['lua']` | Which folders should trigger this module. | +| `style` | `'bold blue'` | The style for the module. | +| `lua_binary` | `'lua'` | Configures the lua binary that Starship executes when getting the version. | +| `disabled` | `false` | Disables the `lua` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v5.4.0` | The version of `lua` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[lua] +format = 'via [🌕 $version](bold blue) ' +``` + +## Memory Usage + +The `memory_usage` module shows current system memory and swap usage. + +By default the swap usage is displayed if the total system swap is non-zero. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| ----------- | ----------------------------------------------- | -------------------------------------------------------- | +| `threshold` | `75` | Hide the memory usage unless it exceeds this percentage. | +| `format` | `'via $symbol [${ram}( \| ${swap})]($style) '` | The format for the module. | +| `symbol` | `'🐏'` | The symbol used before displaying the memory usage. | +| `style` | `'bold dimmed white'` | The style for the module. | +| `disabled` | `true` | Disables the `memory_usage` module. | + +### Variables + +| Variable | Example | Description | +| ---------------- | ------------- | ------------------------------------------------------------------ | +| ram | `31GiB/65GiB` | The usage/total RAM of the current system memory. | +| ram_pct | `48%` | The percentage of the current system memory. | +| swap\*\* | `1GiB/4GiB` | The swap memory size of the current system swap memory file. | +| swap_pct\*\* | `77%` | The swap memory percentage of the current system swap memory file. | +| symbol | `🐏` | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string *\*: The SWAP file information is only displayed if detected on the current system + +### Example + +```toml +# ~/.config/starship.toml + +[memory_usage] +disabled = false +threshold = -1 +symbol = ' ' +style = 'bold dimmed green' +``` + +## Meson + +The `meson` module shows the current Meson developer environment status. + +By default the Meson project name is displayed, if `$MESON_DEVENV` is set. + +### Options + +| Option | Default | Description | +| ------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------- | +| `truncation_length` | `2^32 - 1` | Truncates a project name to `N` graphemes. | +| `truncation_symbol` | `'…'` | The symbol used to indicate a project name was truncated. You can use `''` for no symbol. | +| `format` | `'via [$symbol$project]($style) '` | The format for the module. | +| `symbol` | `'⬢ '` | The symbol used before displaying the project name. | +| `style` | `'blue bold'` | The style for the module. | +| `disabled` | `false` | Disables the `meson` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------- | ------------------------------------ | +| project | `starship` | The current Meson project name | +| symbol | `🐏` | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[meson] +disabled = false +truncation_symbol = '--' +symbol = ' ' +style = 'bold dimmed green' +``` + +## Mercurial Branch + +The `hg_branch` module shows the active branch and topic of the repo in your current directory. + +### Options + +| Option | Default | Description | +| ------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------- | +| `symbol` | `' '` | The symbol used before the hg bookmark or branch name of the repo in your current directory. | +| `style` | `'bold purple'` | The style for the module. | +| `format` | `'on [$symbol$branch(:$topic)]($style) '` | The format for the module. | +| `truncation_length` | `2^63 - 1` | Truncates the hg branch / topic name to `N` graphemes | +| `truncation_symbol` | `'…'` | The symbol used to indicate a branch name was truncated. | +| `disabled` | `true` | Disables the `hg_branch` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| branch | `master` | The active mercurial branch | +| topic | `feature` | The active mercurial topic | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[hg_branch] +format = 'on [🌱 $branch](bold purple)' +truncation_length = 4 +truncation_symbol = '' +``` + +## Nim + +The `nim` module shows the currently installed version of [Nim](https://nim-lang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `nim.cfg` file +- The current directory contains a file with the `.nim` extension +- The current directory contains a file with the `.nims` extension +- The current directory contains a file with the `.nimble` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'👑 '` | The symbol used before displaying the version of Nim. | +| `detect_extensions` | `['nim', 'nims', 'nimble']` | Which extensions should trigger this module. | +| `detect_files` | `['nim.cfg']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `false` | Disables the `nim` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v1.2.0` | The version of `nimc` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[nim] +style = 'yellow' +symbol = '🎣 ' +``` + +## Nix-shell + +The `nix_shell` module shows the [nix-shell](https://nixos.org/guides/nix-pills/developing-with-nix-shell.html) environment. The module will be shown when inside a nix-shell environment. + +### Options + +| Option | Default | Description | +| ------------- | ---------------------------------------------- | --------------------------------------------------------------------- | +| `format` | `'via [$symbol$state( \($name\))]($style) '` | The format for the module. | +| `symbol` | `'❄️ '` | A format string representing the symbol of nix-shell. | +| `style` | `'bold blue'` | The style for the module. | +| `impure_msg` | `'impure'` | A format string shown when the shell is impure. | +| `pure_msg` | `'pure'` | A format string shown when the shell is pure. | +| `unknown_msg` | `''` | A format string shown when it is unknown if the shell is pure/impure. | +| `disabled` | `false` | Disables the `nix_shell` module. | +| `heuristic` | `false` | Attempts to detect new `nix shell`-style shells with a heuristic. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| state | `pure` | The state of the nix-shell | +| name | `lorri` | The name of the nix-shell | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[nix_shell] +disabled = true +impure_msg = '[impure shell](bold red)' +pure_msg = '[pure shell](bold green)' +unknown_msg = '[unknown shell](bold yellow)' +format = 'via [☃️ $state( \($name\))](bold blue) ' +``` + +## Node.js + +The `nodejs` module shows the currently installed version of [Node.js](https://nodejs.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `package.json` file +- The current directory contains a `.node-version` file +- The current directory contains a `.nvmrc` file +- The current directory contains a `node_modules` directory +- The current directory contains a file with the `.js`, `.mjs` or `.cjs` extension +- The current directory contains a file with the `.ts`, `.mts` or `.cts` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `' '` | A format string representing the symbol of Node.js. | +| `detect_extensions` | `['js', 'mjs', 'cjs', 'ts', 'mts', 'cts']` | Which extensions should trigger this module. | +| `detect_files` | `['package.json', '.node-version']` | Which filenames should trigger this module. | +| `detect_folders` | `['node_modules']` | Which folders should trigger this module. | +| `style` | `'bold green'` | The style for the module. | +| `disabled` | `false` | Disables the `nodejs` module. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | + +### Variables + +| Variable | Example | Description | +| --------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| version | `v13.12.0` | The version of `node` | +| engines_version | `>=12.0.0` | `node` version requirement as set in the engines property of `package.json`. Will only show if the version requirement does not match the `node` version. | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[nodejs] +format = 'via [🤖 $version](bold green) ' +``` + +## OCaml + +The `ocaml` module shows the currently installed version of [OCaml](https://ocaml.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a file with `.opam` extension or `_opam` directory +- The current directory contains a `esy.lock` directory +- The current directory contains a `dune` or `dune-project` file +- The current directory contains a `jbuild` or `jbuild-ignore` file +- The current directory contains a `.merlin` file +- The current directory contains a file with `.ml`, `.mli`, `.re` or `.rei` extension + +### Options + +| Option | Default | Description | +| ------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )(\($switch_indicator$switch_name\) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐫 '` | The symbol used before displaying the version of OCaml. | +| `global_switch_indicator` | `''` | The format string used to represent global OPAM switch. | +| `local_switch_indicator` | `'*'` | The format string used to represent local OPAM switch. | +| `detect_extensions` | `['opam', 'ml', 'mli', 're', 'rei']` | Which extensions should trigger this module. | +| `detect_files` | `['dune', 'dune-project', 'jbuild', 'jbuild-ignore', '.merlin']` | Which filenames should trigger this module. | +| `detect_folders` | `['_opam', 'esy.lock']` | Which folders should trigger this module. | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `false` | Disables the `ocaml` module. | + +### Variables + +| Variable | Example | Description | +| ---------------- | ------------ | ----------------------------------------------------------------- | +| version | `v4.10.0` | The version of `ocaml` | +| switch_name | `my-project` | The active OPAM switch | +| switch_indicator | | Mirrors the value of `indicator` for currently active OPAM switch | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[ocaml] +format = 'via [🐪 $version]($style) ' +``` + +## Open Policy Agent + +The `opa` module shows the currently installed version of the OPA tool. By default the module will be shown if the current directory contains a `.rego` file. + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🪖 '` | A format string representing the symbol of OPA. | +| `detect_extensions` | `['rego']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables the `opa` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v0.44.0` | The version of `opa` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[opa] +format = 'via [⛑️ $version](bold red) ' +``` + +## OpenStack + +The `openstack` module shows the current OpenStack cloud and project. The module only active when the `OS_CLOUD` env var is set, in which case it will read `clouds.yaml` file from any of the [default locations](https://docs.openstack.org/python-openstackclient/latest/configuration/index.html#configuration-files). to fetch the current project in use. + +### Options + +| Option | Default | Description | +| ---------- | ----------------------------------------------- | -------------------------------------------------------------- | +| `format` | `'on [$symbol$cloud(\($project\))]($style) '` | The format for the module. | +| `symbol` | `'☁️ '` | The symbol used before displaying the current OpenStack cloud. | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `false` | Disables the `openstack` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| cloud | `corp` | The current OpenStack cloud | +| project | `dev` | The current OpenStack project | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[openstack] +format = 'on [$symbol$cloud(\($project\))]($style) ' +style = 'bold yellow' +symbol = '☁️ ' +``` + +## OS + +The `os` module shows the current operating system. OS information is detected via the [os_info](https://lib.rs/crates/os_info) crate. + +::: warning + +The [os_info](https://lib.rs/crates/os_info) crate used by this module is known to be inaccurate on some systems. + +::: + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| ---------- | --------------------- | ------------------------------------------------------ | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | +| `disabled` | `true` | Disables the `os` module. | +| `symbols` | | A table that maps each operating system to its symbol. | + +`symbols` allows you to define arbitrary symbols to display for each operating system type. Operating system types not defined by your configuration use the default symbols table below. All operating systems currently supported by the module are listed below. If you would like an operating system to be added, feel free to open a [feature request](https://github.com/starship/starship/issues/new/choose). + +```toml +# This is the default symbols table. +[os.symbols] +Alpaquita = "🔔 " +Alpine = "🏔️ " +Amazon = "🙂 " +Android = "🤖 " +Arch = "🎗️ " +Artix = "🎗️ " +CentOS = "💠 " +Debian = "🌀 " +DragonFly = "🐉 " +Emscripten = "🔗 " +EndeavourOS = "🚀 " +Fedora = "🎩 " +FreeBSD = "😈 " +Garuda = "🦅 " +Gentoo = "🗜️ " +HardenedBSD = "🛡️ " +Illumos = "🐦 " +Linux = "🐧 " +Mabox = "📦 " +Macos = "🍎 " +Manjaro = "🥭 " +Mariner = "🌊 " +MidnightBSD = "🌘 " +Mint = "🌿 " +NetBSD = "🚩 " +NixOS = "❄️ " +OpenBSD = "🐡 " +OpenCloudOS = "☁️ " +openEuler = "🦉 " +openSUSE = "🦎 " +OracleLinux = "🦴 " +Pop = "🍭 " +Raspbian = "🍓 " +Redhat = "🎩 " +RedHatEnterprise = "🎩 " +Redox = "🧪 " +Solus = "⛵ " +SUSE = "🦎 " +Ubuntu = "🎯 " +Unknown = "❓ " +Windows = "🪟 " +``` + +### Variables + +| Variable | Example | Description | +| --------- | ------------ | ------------------------------------------------------------------ | +| symbol | `🎗️` | The current operating system symbol from advanced option `symbols` | +| name | `Arch Linux` | The current operating system name | +| type | `Arch` | The current operating system type | +| codename | | The current operating system codename, if applicable | +| edition | | The current operating system edition, if applicable | +| version | | The current operating system version, if applicable | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[os] +format = "on [($name )]($style)" +style = "bold blue" +disabled = false + +[os.symbols] +Windows = " " +Arch = "Arch is the best! " +``` + +## Package Version + +The `package` module is shown when the current directory is the repository for a package, and shows its current version. The module currently supports `npm`, `nimble`, `cargo`, `poetry`, `python`, `composer`, `gradle`, `julia`, `mix`, `helm`, `shards`, `daml` and `dart` packages. + +- [**npm**](https://docs.npmjs.com/cli/commands/npm) – The `npm` package version is extracted from the `package.json` present in the current directory +- [**Cargo**](https://doc.rust-lang.org/cargo/) – The `cargo` package version is extracted from the `Cargo.toml` present in the current directory +- [**Nimble**](https://github.com/nim-lang/nimble) - The `nimble` package version is extracted from the `*.nimble` file present in the current directory with the `nimble dump` command +- [**Poetry**](https://python-poetry.org/) – The `poetry` package version is extracted from the `pyproject.toml` present in the current directory +- [**Python**](https://www.python.org) - The `python` package version is extracted from a [PEP 621](https://peps.python.org/pep-0621/) compliant `pyproject.toml` or a `setup.cfg` present in the current directory +- [**Composer**](https://getcomposer.org/) – The `composer` package version is extracted from the `composer.json` present in the current directory +- [**Gradle**](https://gradle.org/) – The `gradle` package version is extracted from the `build.gradle` present in the current directory +- [**Julia**](https://docs.julialang.org/en/v1/stdlib/Pkg/) - The package version is extracted from the `Project.toml` present in the current directory +- [**Mix**](https://hexdocs.pm/mix/) - The `mix` package version is extracted from the `mix.exs` present in the current directory +- [**Helm**](https://helm.sh/docs/helm/helm_package/) - The `helm` chart version is extracted from the `Chart.yaml` present in the current directory +- [**Maven**](https://maven.apache.org/) - The `maven` package version is extracted from the `pom.xml` present in the current directory +- [**Meson**](https://mesonbuild.com/) - The `meson` package version is extracted from the `meson.build` present in the current directory +- [**Shards**](https://crystal-lang.org/reference/the_shards_command/index.html) - The `shards` package version is extracted from the `shard.yml` present in the current directory +- [**V**](https://vlang.io) - The `vlang` package version is extracted from the `v.mod` present in the current directory +- [**SBT**](https://scala-sbt.org) - The `sbt` package version is extracted from the `build.sbt` present in the current directory +- [**Daml**](https://www.digitalasset.com/developers) - The `daml` package version is extracted from the `daml.yaml` present in the current directory +- [**Dart**](https://pub.dev/) - The `dart` package version is extracted from the `pubspec.yaml` present in the current directory + +> ⚠️ The version being shown is that of the package whose source code is in your current directory, not your package manager. + +### Options + +| Option | Default | Description | +| ----------------- | --------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'is [$symbol$version]($style) '` | The format for the module. | +| `symbol` | `'📦 '` | The symbol used before displaying the version the package. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `style` | `'bold 208'` | The style for the module. | +| `display_private` | `false` | Enable displaying version for packages marked as private. | +| `disabled` | `false` | Disables the `package` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v1.0.0` | The version of your package | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[package] +format = 'via [🎁 $version](208 bold) ' +``` + +## Perl + +The `perl` module shows the currently installed version of [Perl](https://www.perl.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `Makefile.PL` or `Build.PL` file +- The current directory contains a `cpanfile` or `cpanfile.snapshot` file +- The current directory contains a `META.json` file or `META.yml` file +- The current directory contains a `.perl-version` file +- The current directory contains a `.pl`, `.pm` or `.pod` + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐪 '` | The symbol used before displaying the version of Perl | +| `detect_extensions` | `['pl', 'pm', 'pod']` | Which extensions should trigger this module. | +| `detect_files` | `['Makefile.PL', 'Build.PL', 'cpanfile', 'cpanfile.snapshot', 'META.json', 'META.yml', '.perl-version']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `perl` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `v5.26.1` | The version of `perl` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +### Example + +```toml +# ~/.config/starship.toml + +[perl] +format = 'via [🦪 $version]($style) ' +``` + +## PHP + +The `php` module shows the currently installed version of [PHP](https://www.php.net/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `composer.json` file +- The current directory contains a `.php-version` file +- The current directory contains a `.php` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐘 '` | The symbol used before displaying the version of PHP. | +| `detect_extensions` | `['php']` | Which extensions should trigger this module. | +| `detect_files` | `['composer.json', '.php-version']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'147 bold'` | The style for the module. | +| `disabled` | `false` | Disables the `php` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v7.3.8` | The version of `php` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[php] +format = 'via [🔹 $version](147 bold) ' +``` + +## Pijul Channel + +The `pijul_channel` module shows the active channel of the repo in your current directory. + +### Options + +| Option | Default | Description | +| ------------------- | --------------------------------- | ------------------------------------------------------------------------------------ | +| `symbol` | `' '` | The symbol used before the pijul channel name of the repo in your current directory. | +| `style` | `'bold purple'` | The style for the module. | +| `format` | `'on [$symbol$channel]($style) '` | The format for the module. | +| `truncation_length` | `2^63 - 1` | Truncates the pijul channel name to `N` graphemes | +| `truncation_symbol` | `'…'` | The symbol used to indicate a branch name was truncated. | +| `disabled` | `true` | Disables the `pijul` module. | + +## Pulumi + +The `pulumi` module shows the current username, selected [Pulumi Stack](https://www.pulumi.com/docs/intro/concepts/stack/), and version. + +::: tip + +By default the Pulumi version is not shown, since it takes an order of magnitude longer to load then most plugins (~70ms). If you still want to enable it, [follow the example shown below](#with-pulumi-version). + +::: + +By default the module will be shown if any of the following conditions are met: + +- The current directory contains either `Pulumi.yaml` or `Pulumi.yml` +- A parent directory contains either `Pulumi.yaml` or `Pulumi.yml` unless `search_upwards` is set to `false` + +### Options + +| Option | Default | Description | +| ---------------- | -------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($username@)$stack]($style) '` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `' '` | A format string shown before the Pulumi stack. | +| `style` | `'bold 5'` | The style for the module. | +| `search_upwards` | `true` | Enable discovery of pulumi config files in parent directories. | +| `disabled` | `false` | Disables the `pulumi` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------- | ------------------------------------ | +| version | `v0.12.24` | The version of `pulumi` | +| stack | `dev` | The current Pulumi stack | +| username | `alice` | The current Pulumi username | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +#### With Pulumi Version + +```toml +# ~/.config/starship.toml + +[pulumi] +format = '[🛥 ($version )$stack]($style) ' +``` + +#### Without Pulumi version + +```toml +# ~/.config/starship.toml +[pulumi] +symbol = '🛥 ' +format = '[$symbol$stack]($style) ' +``` + +## PureScript + +The `purescript` module shows the currently installed version of [PureScript](https://www.purescript.org/) version. By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `spago.dhall` file +- The current directory contains a file with the `.purs` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'<=> '` | The symbol used before displaying the version of PureScript. | +| `detect_extensions` | `['purs']` | Which extensions should trigger this module. | +| `detect_files` | `['spago.dhall']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold white'` | The style for the module. | +| `disabled` | `false` | Disables the `purescript` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `0.13.5` | The version of `purescript` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[purescript] +format = 'via [$symbol$version](bold white)' +``` + +## Python + +The `python` module shows the currently installed version of [Python](https://www.python.org/) and the current [Python virtual environment](https://docs.python.org/tutorial/venv.html) if one is activated. + +If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. + +By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `.python-version` file +- The current directory contains a `Pipfile` file +- The current directory contains a `__init__.py` file +- The current directory contains a `pyproject.toml` file +- The current directory contains a `requirements.txt` file +- The current directory contains a `setup.py` file +- The current directory contains a `tox.ini` file +- The current directory contains a file with the `.py` extension. +- A virtual environment is currently activated + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | +| `format` | `'via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐍 '` | A format string representing the symbol of Python | +| `style` | `'yellow bold'` | The style for the module. | +| `pyenv_version_name` | `false` | Use pyenv to get Python version | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | +| `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | +| `detect_extensions` | `['py']` | Which extensions should trigger this module | +| `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | +| `detect_folders` | `[]` | Which folders should trigger this module | +| `disabled` | `false` | Disables the `python` module. | + +::: tip + +The `python_binary` variable accepts either a string or a list of strings. Starship will try executing each binary until it gets a result. Note you can only change the binary that Starship executes to get the version of Python not the arguments that are used. + +The default values and order for `python_binary` was chosen to first identify the Python version in a virtualenv/conda environments (which currently still add a `python`, no matter if it points to `python3` or `python2`). This has the side effect that if you still have a system Python 2 installed, it may be picked up before any Python 3 (at least on Linux Distros that always symlink `/usr/bin/python` to Python 2). If you do not work with Python 2 anymore but cannot remove the system Python 2, changing this to `'python3'` will hide any Python version 2, see example below. + +::: + +### Variables + +| Variable | Example | Description | +| ------------ | --------------- | ------------------------------------------ | +| version | `'v3.8.1'` | The version of `python` | +| symbol | `'🐍 '` | Mirrors the value of option `symbol` | +| style | `'yellow bold'` | Mirrors the value of option `style` | +| pyenv_prefix | `'pyenv '` | Mirrors the value of option `pyenv_prefix` | +| virtualenv | `'venv'` | The current `virtualenv` name | + +### Example + +```toml +# ~/.config/starship.toml + +[python] +symbol = '👾 ' +pyenv_version_name = true +``` + +```toml +# ~/.config/starship.toml + +[python] +# Only use the `python3` binary to get the version. +python_binary = 'python3' +``` + +```toml +# ~/.config/starship.toml + +[python] +# Don't trigger for files with the py extension +detect_extensions = [] +``` + +```toml +# ~/.config/starship.toml + +[python] +# Display the version of python from inside a local venv. +# +# Note this will only work when the venv is inside the project and it will only +# work in the directory that contains the venv dir but maybe this is ok? +python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] +``` + +## R + +The `rlang` module shows the currently installed version of [R](https://www.r-project.org/). The module will be shown if any of the following conditions are met: + +- The current directory contains a file with the `.R` extension. +- The current directory contains a file with the `.Rd` extension. +- The current directory contains a file with the `.Rmd` extension. +- The current directory contains a file with the `.Rproj` extension. +- The current directory contains a file with the `.Rsx` extension. +- The current directory contains a `.Rprofile` file +- The current directory contains a `.Rproj.user` folder + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'📐'` | A format string representing the symbol of R. | +| `style` | `'blue bold'` | The style for the module. | +| `detect_extensions` | `['R', 'Rd', 'Rmd', 'Rproj', 'Rsx']` | Which extensions should trigger this module | +| `detect_files` | `['.Rprofile']` | Which filenames should trigger this module | +| `detect_folders` | `['.Rproj.user']` | Which folders should trigger this module | +| `disabled` | `false` | Disables the `r` module. | + +### Variables + +| Variable | Example | Description | +| -------- | ------------- | ------------------------------------ | +| version | `v4.0.5` | The version of `R` | +| symbol | | Mirrors the value of option `symbol` | +| style | `'blue bold'` | Mirrors the value of option `style` | + +### Example + +```toml +# ~/.config/starship.toml + +[rlang] +format = 'with [📐 $version](blue bold) ' +``` + +## Raku + +The `raku` module shows the currently installed version of [Raku](https://www.raku.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `META6.json` file +- The current directory contains a `.p6`, `.pm6`, `.raku`, `.rakumod` or `.pod6` + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version-$vm_version )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🦋 '` | The symbol used before displaying the version of Raku | +| `detect_extensions` | `['p6', 'pm6', 'pod6', 'raku', 'rakumod']` | Which extensions should trigger this module. | +| `detect_files` | `['META6.json']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `raku` module. | + +### Variables + +| Variable | Example | Description | +| ---------- | ------- | ------------------------------------ | +| version | `v6.d` | The version of `raku` | +| vm_version | `moar` | The version of VM `raku` is built on | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +### Example + +```toml +# ~/.config/starship.toml + +[raku] +format = 'via [🦪 $version]($style) ' +``` + +## Red + +By default the `red` module shows the currently installed version of [Red](https://www.red-lang.org/). The module will be shown if any of the following conditions are met: + +- The current directory contains a file with `.red` or `.reds` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🔺 '` | A format string representing the symbol of Red. | +| `detect_extensions` | `['red']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'red bold'` | The style for the module. | +| `disabled` | `false` | Disables the `red` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v2.5.1` | The version of `red` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[red] +symbol = '🔴 ' +``` + +## Ruby + +By default the `ruby` module shows the currently installed version of [Ruby](https://www.ruby-lang.org/). The module will be shown if any of the following conditions are met: + +- The current directory contains a `Gemfile` file +- The current directory contains a `.ruby-version` file +- The current directory contains a `.rb` file +- The environment variables `RUBY_VERSION` or `RBENV_VERSION` are set + +Starship gets the current Ruby version by running `ruby -v`. + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'💎 '` | A format string representing the symbol of Ruby. | +| `detect_extensions` | `['rb']` | Which extensions should trigger this module. | +| `detect_files` | `['Gemfile', '.ruby-version']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `detect_variables` | `['RUBY_VERSION', 'RBENV_VERSION']` | Which environment variables should trigger this module. | +| `style` | `'bold red'` | The style for the module. | +| `disabled` | `false` | Disables the `ruby` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[ruby] +symbol = '🔺 ' +``` + +## Rust + +By default the `rust` module shows the currently installed version of [Rust](https://www.rust-lang.org/). The module will be shown if any of the following conditions are met: + +- The current directory contains a `Cargo.toml` file +- The current directory contains a file with the `.rs` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🦀 '` | A format string representing the symbol of Rust | +| `detect_extensions` | `['rs']` | Which extensions should trigger this module. | +| `detect_files` | `['Cargo.toml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold red'` | The style for the module. | +| `disabled` | `false` | Disables the `rust` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ----------------- | -------------------------------------------- | +| version | `v1.43.0-nightly` | The version of `rustc` | +| numver | `1.51.0` | The numeric component of the `rustc` version | +| toolchain | `beta` | The toolchain version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[rust] +format = 'via [⚙️ $version](red bold)' +``` + +## Scala + +The `scala` module shows the currently installed version of [Scala](https://www.scala-lang.org/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `build.sbt`, `.scalaenv` or `.sbtenv` file +- The current directory contains a file with the `.scala` or `.sbt` extension +- The current directory contains a directory named `.metals` + +### Options + +| Option | Default | Description | +| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [${symbol}(${version} )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['sbt', 'scala']` | Which extensions should trigger this module. | +| `detect_files` | `['.scalaenv', '.sbtenv', 'build.sbt']` | Which filenames should trigger this module. | +| `detect_folders` | `['.metals']` | Which folders should trigger this modules. | +| `symbol` | `'🆂 '` | A format string representing the symbol of Scala. | +| `style` | `'red dimmed'` | The style for the module. | +| `disabled` | `false` | Disables the `scala` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `2.13.5` | The version of `scala` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[scala] +symbol = '🌟 ' +``` + +## Shell + +The `shell` module shows an indicator for currently used shell. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | + +### Variables + +| Variable | Default | Description | +| --------- | ------- | ---------------------------------------------------------- | +| indicator | | Mirrors the value of `indicator` for currently used shell. | +| style\* | | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Examples + +```toml +# ~/.config/starship.toml + +[shell] +fish_indicator = '󰈺 ' +powershell_indicator = '_' +unknown_indicator = 'mystery shell' +style = 'cyan bold' +disabled = false +``` + +## SHLVL + +The `shlvl` module shows the current [`SHLVL`](https://tldp.org/LDP/abs/html/internalvariables.html#SHLVLREF) ('shell level') environment variable, if it is set to a number and meets or exceeds the specified threshold. + +### Options + +| Option | Default | Description | +| --------------- | ---------------------------- | ------------------------------------------------------------------- | +| `threshold` | `2` | Display threshold. | +| `format` | `'[$symbol$shlvl]($style) '` | The format for the module. | +| `symbol` | `'↕️ '` | The symbol used to represent the `SHLVL`. | +| `repeat` | `false` | Causes `symbol` to be repeated by the current `SHLVL` amount. | +| `repeat_offset` | `0` | Decrements number of times `symbol` is repeated by the offset value | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `true` | Disables the `shlvl` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| shlvl | `3` | The current value of `SHLVL` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[shlvl] +disabled = false +format = '$shlvl level(s) down' +threshold = 3 +``` + +Using `repeat` and `repeat_offset` along with `character` module, one can get prompt like `❯❯❯` where last character is colored appropriately for return status code and preceeding characters are provided by `shlvl`. + +```toml +# ~/.config/starship.toml + +[shlvl] +disabled = false +format = '[$symbol$shlvl]($style)' +repeat = true +symbol = '❯' +repeat_offset = 1 +threshold = 0 +``` + +## Singularity + +The `singularity` module shows the current [Singularity](https://sylabs.io/singularity/) image, if inside a container and `$SINGULARITY_NAME` is set. + +### Options + +| Option | Default | Description | +| ---------- | -------------------------------- | ------------------------------------------------ | +| `format` | `'[$symbol\[$env\]]($style) '` | The format for the module. | +| `symbol` | `''` | A format string displayed before the image name. | +| `style` | `'bold dimmed blue'` | The style for the module. | +| `disabled` | `false` | Disables the `singularity` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------ | ------------------------------------ | +| env | `centos.img` | The current Singularity image | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[singularity] +format = '[📦 \[$env\]]($style) ' +``` + +## Solidity + +The `solidity` module shows the currently installed version of [Solidity](https://soliditylang.org/) The module will be shown if any of the following conditions are met: + +- The current directory contains a file with the `.sol` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold blue'` | The style for the module. | +| `disabled` | `false` | Disables this module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v0.8.1` | The version of `solidity` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml +[solidity] +format = "via [S $version](blue bold)" +``` + +## Spack + +The `spack` module shows the current [Spack](https://spack.readthedocs.io/en/latest/) environment, if `$SPACK_ENV` is set. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `truncation_length` | `1` | The number of directories the environment path should be truncated to. `0` means no truncation. Also see the [`directory`](#directory) module. | +| `symbol` | `'🅢 '` | The symbol used before the environment name. | +| `style` | `'bold blue'` | The style for the module. | +| `format` | `'via [$symbol$environment]($style) '` | The format for the module. | +| `disabled` | `false` | Disables the `spack` module. | + +### Variables + +| Variable | Example | Description | +| ----------- | ------------ | ------------------------------------ | +| environment | `astronauts` | The current spack environment | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[spack] +format = '[$symbol$environment](dimmed blue) ' +``` + +## Status + +The `status` module displays the exit code of the previous command. If $success_symbol is empty (default), the module will be shown only if the exit code is not `0`. The status code will cast to a signed 32-bit integer. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| --------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `format` | `'[$symbol$status]($style) '` | The format of the module | +| `symbol` | `'❌'` | The symbol displayed on program error | +| `success_symbol` | `''` | The symbol displayed on program success | +| `not_executable_symbol` | `'🚫'` | The symbol displayed when file isn't executable | +| `not_found_symbol` | `'🔍'` | The symbol displayed when the command can't be found | +| `sigint_symbol` | `'🧱'` | The symbol displayed on SIGINT (Ctrl + c) | +| `signal_symbol` | `'⚡'` | The symbol displayed on any signal | +| `style` | `'bold red'` | The style for the module. | +| `recognize_signal_code` | `true` | Enable signal mapping from exit code | +| `map_symbol` | `false` | Enable symbols mapping from exit code | +| `pipestatus` | `false` | Enable pipestatus reporting | +| `pipestatus_separator` | | | The symbol used to separate pipestatus segments (supports formatting) | +| `pipestatus_format` | `'\[$pipestatus\] => [$symbol$common_meaning$signal_name$maybe_int]($style)'` | The format of the module when the command is a pipeline | +| `pipestatus_segment_format` | | When specified, replaces `format` when formatting pipestatus segments | +| `disabled` | `true` | Disables the `status` module. | + +### Variables + +| Variable | Example | Description | +| -------------- | ------- | ------------------------------------------------------------------------------------------ | +| status | `127` | The exit code of the last command | +| hex_status | `0x7F` | The exit code of the last command in hex | +| int | `127` | The exit code of the last command | +| common_meaning | `ERROR` | Meaning of the code if not a signal | +| signal_number | `9` | Signal number corresponding to the exit code, only if signalled | +| signal_name | `KILL` | Name of the signal corresponding to the exit code, only if signalled | +| maybe_int | `7` | Contains the exit code number when no meaning has been found | +| pipestatus | | Rendering of in pipeline programs' exit codes, this is only available in pipestatus_format | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[status] +style = 'bg:blue' +symbol = '🔴 ' +success_symbol = '🟢 SUCCESS' +format = '[\[$symbol$common_meaning$signal_name$maybe_int\]]($style) ' +map_symbol = true +disabled = false +``` + +## Sudo + +The `sudo` module displays if sudo credentials are currently cached. The module will only be shown if credentials are cached. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| --------------- | ------------------------ | ------------------------------------------------------- | +| `format` | `'[as $symbol]($style)'` | The format of the module | +| `symbol` | `'🧙 '` | The symbol displayed when credentials are cached | +| `style` | `'bold blue'` | The style for the module. | +| `allow_windows` | `false` | Since windows has no default sudo, default is disabled. | +| `disabled` | `true` | Disables the `sudo` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[sudo] +style = 'bold green' +symbol = '👩‍💻 ' +disabled = false +``` + +```toml +# On windows +# $HOME\.starship\config.toml + +[sudo] +allow_windows = true +disabled = false +``` + +## Swift + +By default the `swift` module shows the currently installed version of [Swift](https://swift.org/). The module will be shown if any of the following conditions are met: + +- The current directory contains a `Package.swift` file +- The current directory contains a file with the `.swift` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐦 '` | A format string representing the symbol of Swift | +| `detect_extensions` | `['swift']` | Which extensions should trigger this module. | +| `detect_files` | `['Package.swift']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold 202'` | The style for the module. | +| `disabled` | `false` | Disables the `swift` module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v5.2.4` | The version of `swift` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[swift] +format = 'via [🏎 $version](red bold)' +``` + +## Terraform + +The `terraform` module shows the currently selected [Terraform workspace](https://www.terraform.io/docs/language/state/workspaces.html) and version. + +::: tip + +By default the Terraform version is not shown, since this is slow for current versions of Terraform when a lot of plugins are in use. If you still want to enable it, [follow the example shown below](#with-terraform-version). + +::: + +By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `.terraform` folder +- Current directory contains a file with the `.tf`, `.tfplan` or `.tfstate` extensions + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol$workspace]($style) '` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'💠'` | A format string shown before the terraform workspace. | +| `detect_extensions` | `['tf', 'tfplan', 'tfstate']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `['.terraform']` | Which folders should trigger this module. | +| `style` | `'bold 105'` | The style for the module. | +| `disabled` | `false` | Disables the `terraform` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------- | ------------------------------------ | +| version | `v0.12.24` | The version of `terraform` | +| workspace | `default` | The current Terraform workspace | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +#### With Terraform Version + +```toml +# ~/.config/starship.toml + +[terraform] +format = '[🏎💨 $version$workspace]($style) ' +``` + +#### Without Terraform version + +```toml +# ~/.config/starship.toml + +[terraform] +format = '[🏎💨 $workspace]($style) ' +``` + +## Time + +The `time` module shows the current **local** time. The `format` configuration value is used by the [`chrono`](https://crates.io/crates/chrono) crate to control how the time is displayed. Take a look [at the chrono strftime docs](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html) to see what options are available. + +::: tip + +This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. + +::: + +### Options + +| Option | Default | Description | +| ----------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `format` | `'at [$time]($style) '` | The format string for the module. | +| `use_12hr` | `false` | Enables 12 hour formatting | +| `time_format` | see below | The [chrono format string](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html) used to format the time. | +| `style` | `'bold yellow'` | The style for the module time | +| `utc_time_offset` | `'local'` | Sets the UTC offset to use. Range from -24 < x < 24. Allows floats to accommodate 30/45 minute timezone offsets. | +| `disabled` | `true` | Disables the `time` module. | +| `time_range` | `'-'` | Sets the time range during which the module will be shown. Times must be specified in 24-hours format | + +If `use_12hr` is `true`, then `time_format` defaults to `'%r'`. Otherwise, it defaults to `'%T'`. Manually setting `time_format` will override the `use_12hr` setting. + +### Variables + +| Variable | Example | Description | +| --------- | ---------- | ----------------------------------- | +| time | `13:08:10` | The current time. | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[time] +disabled = false +format = '🕙[\[ $time \]]($style) ' +time_format = '%T' +utc_time_offset = '-5' +time_range = '10:00:00-14:00:00' +``` + +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +## Username + +The `username` module shows active user's username. The module will be shown if any of the following conditions are met: + +- The current user is root/admin +- The current user isn't the same as the one that is logged in +- The user is currently connected as an SSH session +- The variable `show_always` is set to true + +::: tip + +SSH connection is detected by checking environment variables `SSH_CONNECTION`, `SSH_CLIENT`, and `SSH_TTY`. If your SSH host does not set up these variables, one workaround is to set one of them with a dummy value. + +::: + +### Options + +| Option | Default | Description | +| ------------- | ----------------------- | ------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | + +### Variables + +| Variable | Example | Description | +| -------- | ------------ | ------------------------------------------------------------------------------------------- | +| `style` | `'red bold'` | Mirrors the value of option `style_root` when root is logged in and `style_user` otherwise. | +| `user` | `'matchai'` | The currently logged-in user ID. | + +### Example + +```toml +# ~/.config/starship.toml + +[username] +style_user = 'white bold' +style_root = 'black bold' +format = 'user: [$user]($style) ' +disabled = false +show_always = true +``` + +## Vagrant + +The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `Vagrantfile` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⍱ '` | A format string representing the symbol of Vagrant. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['Vagrantfile']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'cyan bold'` | The style for the module. | +| `disabled` | `false` | Disables the `vagrant` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ---------------- | ------------------------------------ | +| version | `Vagrant 2.2.10` | The version of `Vagrant` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[vagrant] +format = 'via [⍱ $version](bold white) ' +``` + +## V + +The `vlang` module shows you your currently installed version of [V](https://vlang.io/). By default the module will be shown if any of the following conditions are met: + +- The current directory contains a file with `.v` extension +- The current directory contains a `v.mod`, `vpkg.json` or `.vpkg-lock.json` file + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'V '` | A format string representing the symbol of V | +| `detect_extensions` | `['v']` | Which extensions should trigger this module. | +| `detect_files` | `['v.mod', 'vpkg.json', '.vpkg-lock.json' ]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'blue bold'` | The style for the module. | +| `disabled` | `false` | Disables the `vlang` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------- | ------------------------------------ | +| version | `v0.2` | The version of `v` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +### Example + +```toml +# ~/.config/starship.toml +[vlang] +format = 'via [V $version](blue bold) ' +``` + +## VCSH + +The `vcsh` module displays the current active [VCSH](https://github.com/RichiH/vcsh) repository. The module will be shown only if a repository is currently in use. + +### Options + +| Option | Default | Description | +| ---------- | -------------------------------- | ------------------------------------------------------ | +| `symbol` | `''` | The symbol used before displaying the repository name. | +| `style` | `'bold yellow'` | The style for the module. | +| `format` | `'vcsh [$symbol$repo]($style) '` | The format for the module. | +| `disabled` | `false` | Disables the `vcsh` module. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------------------------------- | ------------------------------------ | +| repo | `dotfiles` if in a VCSH repo named dotfiles | The active repository name | +| symbol | | Mirrors the value of option `symbol` | +| style\* | `black bold dimmed` | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[vcsh] +format = '[🆅 $repo](bold blue) ' +``` + +## Zig + +By default the `zig` module shows the currently installed version of [Zig](https://ziglang.org/). The module will be shown if any of the following conditions are met: + +- The current directory contains a `.zig` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'↯ '` | The symbol used before displaying the version of Zig. | +| `style` | `'bold yellow'` | The style for the module. | +| `disabled` | `false` | Disables the `zig` module. | +| `detect_extensions` | `['zig']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | + +### Variables + +| Variable | Example | Description | +| --------- | -------- | ------------------------------------ | +| version | `v0.6.0` | The version of `zig` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[zig] +symbol = '⚡️ ' +``` + +## Custom commands + +The `custom` modules show the output of some arbitrary commands. + +These modules will be shown if any of the following conditions are met: + +- The current directory contains a file whose name is in `detect_files` +- The current directory contains a directory whose name is in `detect_folders` +- The current directory contains a file whose extension is in `detect_extensions` +- The `when` command returns 0 +- The current Operating System (std::env::consts::OS) matches with `os` field if defined. + +::: tip + +Multiple custom modules can be defined by using a `.`. + +::: + +::: tip + +The order in which custom modules are shown can be individually set by including `${custom.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `custom` module will simply show all custom modules in the order they were defined. + +::: + +::: tip + +[Issue #1252](https://github.com/starship/starship/discussions/1252) contains examples of custom modules. If you have an interesting example not covered there, feel free to share it there! + +::: + +::: warning Command output is printed unescaped to the prompt + +Whatever output the command generates is printed unmodified in the prompt. This means if the output contains special sequences that are interpreted by your shell they will be expanded when displayed. These special sequences are shell specific, e.g. you can write a command module that writes bash sequences, e.g. `\h`, but this module will not work in a fish or zsh shell. + +Format strings can also contain shell specific prompt sequences, e.g. [Bash](https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html), [Zsh](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html). + +::: + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | `''` | The command whose output should be printed. The command will be passed on stdin to the shell. | +| `when` | `false` | Either a boolean value (`true` or `false`, without quotes) or a string shell command used as a condition to show the module. In case of a string, the module will be shown if the command returns a `0` status code. | +| `require_repo` | `false` | If `true`, the module will only be shown in paths containing a (git) repository. This option alone is not sufficient display condition in absence of other options. | +| `shell` | | [See below](#custom-command-shell) | +| `description` | `''` | The description of the module that is shown when running `starship explain`. | +| `detect_files` | `[]` | The files that will be searched in the working directory for a match. | +| `detect_folders` | `[]` | The directories that will be searched in the working directory for a match. | +| `detect_extensions` | `[]` | The extensions that will be searched in the working directory for a match. | +| `symbol` | `''` | The symbol used before displaying the command output. | +| `style` | `'bold green'` | The style for the module. | +| `format` | `'[$symbol($output )]($style)'` | The format for the module. | +| `disabled` | `false` | Disables this `custom` module. | +| `os` | | Operating System name on which the module will be shown (unix, linux, macos, windows, ... ) [See possible values](https://doc.rust-lang.org/std/env/consts/constant.OS.html). | +| `use_stdin` | | An optional boolean value that overrides whether commands should be forwarded to the shell via the standard input or as an argument. If unset standard input is used by default, unless the shell does not support it (cmd, nushell). Setting this disables shell-specific argument handling. | +| `ignore_timeout` | `false` | Ignore global `command_timeout` setting and keep running external commands, no matter how long they take. | + +### Variables + +| Variable | Description | +| --------- | -------------------------------------- | +| output | The output of shell command in `shell` | +| symbol | Mirrors the value of option `symbol` | +| style\* | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +#### Custom command shell + +`shell` accepts a non-empty list of strings, where: + +- The first string is the path to the shell to use to execute the command. +- Other following arguments are passed to the shell. + +If unset, it will fallback to STARSHIP_SHELL and then to 'sh' on Linux, and 'cmd /C' on Windows. + +The `command` will be passed in on stdin. + +If `shell` is not given or only contains one element and Starship detects PowerShell will be used, the following arguments will automatically be added: `-NoProfile -Command -`. If `shell` is not given or only contains one element and Starship detects Cmd will be used, the following argument will automatically be added: `/C` and `stdin` will be set to `false`. If `shell` is not given or only contains one element and Starship detects Nushell will be used, the following arguments will automatically be added: `-c` and `stdin` will be set to `false`. This behavior can be avoided by explicitly passing arguments to the shell, e.g. + +```toml +shell = ['pwsh', '-Command', '-'] +``` + +::: warning Make sure your custom shell configuration exits gracefully + +If you set a custom command, make sure that the default Shell used by starship will properly execute the command with a graceful exit (via the `shell` option). + +For example, PowerShell requires the `-Command` parameter to execute a one liner. Omitting this parameter might throw starship into a recursive loop where the shell might try to load a full profile environment with starship itself again and hence re-execute the custom command, getting into a never ending loop. + +Parameters similar to `-NoProfile` in PowerShell are recommended for other shells as well to avoid extra loading time of a custom profile on every starship invocation. + +Automatic detection of shells and proper parameters addition are currently implemented, but it's possible that not all shells are covered. [Please open an issue](https://github.com/starship/starship/issues/new/choose) with shell details and starship configuration if you hit such scenario. + +::: + +### Example + +```toml +# ~/.config/starship.toml + +[custom.foo] +command = 'echo foo' # shows output of command +detect_files = ['foo'] # can specify filters but wildcards are not supported +when = ''' test "$HOME" = "$PWD" ''' +format = ' transcending [$output]($style)' + +[custom.time] +command = 'time /T' +detect_extensions = ['pst'] # filters *.pst files +shell = ['pwsh.exe', '-NoProfile', '-Command', '-'] + +[custom.time-as-arg] +command = 'time /T' +detect_extensions = ['pst'] # filters *.pst files +shell = ['pwsh.exe', '-NoProfile', '-Command'] +use_stdin = false +``` diff --git a/docs/bn-BD/faq/README.md b/docs/bn-BD/faq/README.md new file mode 100644 index 00000000..41bb2d39 --- /dev/null +++ b/docs/bn-BD/faq/README.md @@ -0,0 +1,122 @@ +# Frequently Asked Questions + +## What is the configuration used in the demo GIF? + +- **Terminal Emulator**: [iTerm2](https://iterm2.com/) + - **Theme**: Minimal + - **Color Scheme**: [Snazzy](https://github.com/sindresorhus/iterm2-snazzy) + - **Font**: [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) +- **Shell**: [Fish Shell](https://fishshell.com/) + - **Configuration**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish) + - **Prompt**: [Starship](https://starship.rs/) + +## How do I get command completion as shown in the demo GIF? + +Completion support, or autocomplete, is provided by your shell of choice. In the case of the demo, the demo was done with [Fish Shell](https://fishshell.com/), which provides completions by default. If you use Z Shell (zsh), I'd suggest taking a look at [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions). + +## Do top level `format` and `.disabled` do the same thing? + +Yes, they can both be used to disable modules in the prompt. If all you plan to do is disable modules, `.disabled` is the preferred way to do so for these reasons: + +- Disabling modules is more explicit than omitting them from the top level `format` +- Newly created modules will be added to the prompt as Starship is updated + +## The docs say Starship is cross-shell. Why isn't my preferred shell supported? + +The way Starship is built, it should be possible to add support for virtually any shell. The starship binary is stateless and shell agnostic, so as long as your shell supports prompt customization and shell expansion, Starship can be used. + +Here's a small example getting Starship working with bash: + +```sh +# Get the status code from the last command executed +STATUS=$? + +# Get the number of jobs running. +NUM_JOBS=$(jobs -p | wc -l) + +# Set the prompt to the output of `starship prompt` +PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)" +``` + +The [Bash implementation](https://github.com/starship/starship/blob/master/src/init/starship.bash) built into Starship is slightly more complex to allow for advanced features like the [Command Duration module](https://starship.rs/config/#command-duration) and to ensure that Starship is compatible with pre-installed Bash configurations. + +For a list of all flags accepted by `starship prompt`, use the following command: + +```sh +starship prompt --help +``` + +The prompt will use as much context as is provided, but no flags are "required". + +## How do I run Starship on Linux distributions with older versions of glibc? + +If you get an error like "_version 'GLIBC_2.18' not found (required by starship)_" when using the prebuilt binary (for example, on CentOS 6 or 7), you can use a binary compiled with `musl` instead of `glibc`: + +```sh +curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl +``` + +## Why do I see `Executing command "..." timed out.` warnings? + +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. + +## I see symbols I don't understand or expect, what do they mean? + +If you see symbols that you don't recognise you can use `starship explain` to explain the currently showing modules. + +## Starship is doing something unexpected, how can I debug it? + +You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs can be very verbose so it is often useful to use the `module` command if you are trying to debug a particular module, for example, if you are trying to debug the `rust` module you could run the following command to get the trace logs and output from the module. + +```sh +env STARSHIP_LOG=trace starship module rust +``` + +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. + +```sh +env STARSHIP_LOG=trace starship timings +``` + +This will output the trace log and a breakdown of all modules that either took more than 1ms to execute or produced some output. + +Finally if you find a bug you can use the `bug-report` command to create a GitHub issue. + +```sh +starship bug-report +``` + +## Why don't I see a glyph symbol in my prompt? + +The most common cause of this is system misconfiguration. Some Linux distros in particular do not come with font support out-of-the-box. You need to ensure that: + +- Your locale is set to a UTF-8 value, like `de_DE.UTF-8` or `ja_JP.UTF-8`. If `LC_ALL` is not a UTF-8 value, [you will need to change it](https://www.tecmint.com/set-system-locales-in-linux/). +- You have an emoji font installed. Most systems come with an emoji font by default, but some (notably Arch Linux) do not. You can usually install one through your system's package manager--[noto emoji](https://www.google.com/get/noto/help/emoji/) is a popular choice. +- You are using a [Nerd Font](https://www.nerdfonts.com/). + +To test your system, run the following commands in a terminal: + +```sh +echo -e "\xf0\x9f\x90\x8d" +echo -e "\xee\x82\xa0" +``` + +The first line should produce a [snake emoji](https://emojipedia.org/snake/), while the second should produce a [powerline branch symbol (e0a0)](https://github.com/ryanoasis/powerline-extra-symbols#glyphs). + +If either symbol fails to display correctly, your system is still misconfigured. Unfortunately, getting font configuration correct is sometimes difficult. Users on the Discord may be able to help. If both symbols display correctly, but you still don't see them in starship, [file a bug report!](https://github.com/starship/starship/issues/new/choose) + +## How do I uninstall Starship? + +Starship is just as easy to uninstall as it is to install in the first place. + +1. Remove any lines in your shell config (e.g. `~/.bashrc`) used to initialize Starship. +1. Delete the Starship binary. + +If Starship was installed using a package manager, please refer to their docs for uninstallation instructions. + +If Starship was installed using the install script, the following command will delete the binary: + +```sh +# Locate and delete the starship binary +sh -c 'rm "$(command -v 'starship')"' +``` diff --git a/docs/bn-BD/guide/README.md b/docs/bn-BD/guide/README.md new file mode 100644 index 00000000..09df2111 --- /dev/null +++ b/docs/bn-BD/guide/README.md @@ -0,0 +1,445 @@ +

+ Starship – Cross-shell prompt +

+ +

+ GitHub Actions workflow status + Crates.io version + Packaging status
+ Chat on Discord + Follow @StarshipPrompt on Twitter + Stand With Ukraine +

+ +

+ ওয়েবসাইট + · +ইন্সটল + · + কনফিগ +

+ +

+ English +   + Deutsch +   + Español +   + Français +   + Bahasa Indonesia +   + Italiano +   + 日本語 +   + Português do Brasil +   + Русский +   + Українська +   + Tiếng Việt +   + 简体中文 +   + 繁體中文 +

+ +

+ +Starship with iTerm2 and the Snazzy theme + +**আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট!** + +- **দ্রুত:** দ্রুত - সত্যি সত্যিই _অনেক_ দ্রুত! 🚀 +- **কাস্টমাইজ করার সুবিধা:** প্রম্পটের প্রতিটি দিক কনফিগ করুন মন মত । +- **ব্যতিক্রমহীন:** যেকোনো অপারেটিং সিস্টেম ও শেলে কাজ করে । +- **চালাক:** এক নজরে দরকারি সকল তথ্য দেখা যায় । +- **ফিচার সমৃদ্ধ:** আপনার প্রিয় সকল টুল ব্যবহার করতে পারবেন । +- **সহজ:** অনায়াসে ইন্সটল করুন – মিনিটের মধ্যে ব্যবহার শুরু করে দিন । + +

+Starship এর ডকুমেন্টেশন ঘুরে দেখুন  ▶ +

+ + + +## 🚀 ইন্সটল + +### পূর্বশর্ত + +- আপনার থেকে টার্মিনালে একটি [Nerd Font](https://www.nerdfonts.com/) ব্যবহার করতে হবে (উদাহরণস্বরূপ আপনি [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) টি ব্যবহার করতে পারেন) । + +### ধাপ ১. Starship ইন্সটল করুন + +ইনস্টলেশন নির্দেশিকা দেখতে নিচের তালিকা থেকে আপনার অপারেটিং সিস্টেম বাছাই করুন: + +
+অ্যান্ড্রয়েড + +নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন: + +| রিপোজিটরি | নির্দেশাবলী | +| --------------------------------------------------------------------------------- | ---------------------- | +| [Termux](https://github.com/termux/termux-packages/tree/master/packages/starship) | `pkg install starship` | + +
+ +
+বিএসডি + +নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন: + +| ডিস্ট্রিবিউশন | রিপোজিটরি | নির্দেশাবলী | +| ------------- | -------------------------------------------------------- | --------------------------------- | +| **_যেকোনো_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | +| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` | + +
+ +
+লিনাক্স + +আপনার সিস্টেম এর জন্য লেটেস্ট সংস্করণটি ইন্সটল করুন: + +```sh +curl -sS https://starship.rs/install.sh | sh +``` + +অথবা, নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন: + +| ডিস্ট্রিবিউশন | রিপোজিটরি | নির্দেশাবলী | +| ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| **_যেকোনো_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| _যেকোনো_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| _যেকোনো_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | +| Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | +| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | +| CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
`dnf install starship` | +| Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | +| Manjaro | | `pacman -S starship` | +| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | +| Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` | + +
+ +
+ম্যাক ওএস + +আপনার সিস্টেম এর জন্য লেটেস্ট সংস্করণটি ইন্সটল করুন: + +```sh +curl -sS https://starship.rs/install.sh | sh +``` + +অথবা, নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন: + +| রিপোজিটরি | নির্দেশাবলী | +| -------------------------------------------------------- | --------------------------------------- | +| **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| [Homebrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | +| [MacPorts](https://ports.macports.org/port/starship) | `port install starship` | + +
+ +
+উইন্ডোজ + +আপনার সিস্টেম এর জন্য লেটেস্ট সংস্করণটি [রিলিজ সেকশনে](https://github.com/starship/starship/releases/latest) থাকা MSI-ইন্সটলার ব্যবহার করে ইন্সটল করুন । + +নিম্নলিখিত প্যাকেজ ম্যানেজার গুলোর মধ্যে থেকে যেকোনো একটি ব্যবহার করে Starship ইন্সটল করুন: + +| রিপোজিটরি | নির্দেশাবলী | +| -------------------------------------------------------------------------------------------- | --------------------------------------- | +| **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| [Chocolatey](https://community.chocolatey.org/packages/starship) | `choco install starship` | +| [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| [Scoop](https://github.com/ScoopInstaller/Main/blob/master/bucket/starship.json) | `scoop install starship` | +| [winget](https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/Starship/Starship) | `winget install --id Starship.Starship` | + +
+ +### ধাপ ২. Starship ব্যবহার করার জন্য আপনার শেল প্রস্তুত করুন + +Starship চালু করতে আপনার শেল কে ঠিক মতো কনফিগার করুন । নিম্নলিখিত তালিকা থেকে আপনার শেল বাছাই করুন: + +
+Bash + +`~/.bashrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```sh +eval "$(starship init bash)" +``` + +
+ +
+Cmd + +আপনাকে Cmd এর সাথে [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) ব্যবহার করতে হবে । `%LocalAppData%\clink\starship.lua` ফাইল টি তৈরি করে তার মধ্যে নিম্নলিখিত লাইন টি যোগ করুন: + +```lua +load(io.popen('starship init cmd'):read("*a"))() +``` + +
+ +
+Elvish + +`~/.elvish/rc.elv` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```sh +eval (starship init elvish) +``` + +বিঃদ্রঃ শুধুমাত্র Elvish v0.18+ কাজ করবে । + +
+ +
+Fish + +`~/.config/fish/config.fish` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```fish +starship init fish | source +``` + +
+ +
+Ion + +`~/.config/ion/initrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```sh +eval $(starship init ion) +``` + +
+ +
+Nushell + +আপনার Nushell env ফাইলের (Nushell এ `$nu.env-path` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনগুলি যোগ করুন: + +```sh +mkdir ~/.cache/starship +starship init nu | save -f ~/.cache/starship/init.nu +``` + +এরপর আপনার Nushell কনফিগের (Nushell এ `$nu.config-path` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনটি যোগ করুন: + +```sh +use ~/.cache/starship/init.nu +``` + +বিঃদ্রঃ শুধুমাত্র Nushell v0.78+ কাজ করবে । + +
+ +
+PowerShell + +আপনার PowerShell কনফিগের (PowerShell এ `$PROFILE` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনটি যোগ করুন: + +```powershell +Invoke-Expression (&starship init powershell) +``` + +
+ +
+Tcsh + +`~/.tcshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```sh +eval `starship init tcsh` +``` + +
+ +
+Xonsh + +`~/.xonshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```python +execx($(starship init xonsh)) +``` + +
+ +
+Zsh + +`~/.zshrc` এর শেষে নিম্নলিখিত লাইন টি যোগ করুন: + +```sh +eval "$(starship init zsh)" +``` + +
+ +### ধাপ ৩. Starship কনফিগার করুন + +নতুন একটি শেল চালু করুন, এরপর আপনি আপনার সুন্দর নতুন শেল প্রম্প্ট দেখতে পাবেন । পূর্ব নির্ধারিত কনফিগ যদি ভালো লেগে থাকে, তাহলে উপভোগ করুন! + +আপনি যদি Starship কে নিজের মতো করে কাস্টমাইজ করতে চান: + +- **[কনফিগারেশন](https://starship.rs/config/)** – আপনার নিজের ইচ্ছা মতো নিজের প্রম্প্টকে পরিবর্তন করতে শিখুন + +- **[অন্যদের তৈরি কনফিগ](https://starship.rs/presets/)** – অন্যদের তৈরি করা সুন্দর কনফিগ দেখে অনুপ্রাণিত হন + +## 🤝 নিজে অবদান রাখুন + +আমরা সবসময় **সকল দক্ষতা স্তরের** অবদানকারীদের খুঁজছি! আপনি যদি সহজ ভাবে এই প্রোজেক্টে অবদান রাখতে চান তাইলে ["good first issue"](https://github.com/starship/starship/labels/🌱%20good%20first%20issue) গুলির সমাধান করার চেষ্টা করতে পারেন । + +আপনি যদি ইংরেজি ছাড়া অন্য কোন ভাষায় সাবলীল হন, তাহলে আপনি আমাদের ডকুমেন্টেশন অনুবাদে এবং আপ-টু-ডেট রাখতে সহায়তা করতে পারেন, আমরা খুবই কৃতজ্ঞ হব । যদি এক্ষেত্রে সাহায্য করতে চান, তাহলে [Starship Crowdin](https://translate.starship.rs/) পেইজ এ গিয়ে আপনার অনুবাদ গুলি যোগ করতে পারবেন । + +আপনি যদি Starship এ অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে আমাদের অবদান রাখার [নির্দেশিকা ও নিয়মকানুন](https://github.com/starship/starship/blob/master/CONTRIBUTING.md) দেখে নিবেন । এছাড়াও, নির্দ্বিধায় আমাদের [Discord](https://discord.gg/8Jzqu3T) সার্ভারে এসে হাই বলে যান । 👋 + +## 💭 অনুপ্রেরণা + +অনুগ্রহ করে Starship এর পূর্ববর্তী এইসব প্রোজেক্ট থেকে ঘুরে আসুন, যারা Starship তৈরিতে অনেক অনুপ্রেরণা দিয়েছে । 🙏 + +- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – A ZSH prompt for astronauts. + +- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-shell robbyrussell theme written in JavaScript. + +- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons. + +## ❤️ স্পনসর + +[একজন স্পনসর হয়ে](https://github.com/sponsors/starship) এই প্রোজেক্টটিকে আর্থিক ভাবে সহায়তা করুন । আপনার নাম অথবা লোগো নিম্নে দেখা যাবে আপনার ওয়েবসাইট এর লিঙ্ক সহ । + +**সমর্থক স্তর** + +- [Appwrite](https://appwrite.io/) + +

+
+ Starship rocket icon +

+ +## 📝 লাইসেন্স + +Copyright © 2019-present, [Starship Contributors](https://github.com/starship/starship/graphs/contributors).
এই প্রোজেক্টটি [ISC](https://github.com/starship/starship/blob/master/LICENSE) লাইসেন্সের অধিনে রয়েছে । diff --git a/docs/bn-BD/installing/README.md b/docs/bn-BD/installing/README.md new file mode 100644 index 00000000..a52c2e70 --- /dev/null +++ b/docs/bn-BD/installing/README.md @@ -0,0 +1,93 @@ +# Advanced Installation + +To install starship, you need to do two things: + +1. Get the **starship** binary onto your computer +1. Tell your shell to use the starship binary as its prompt by modifying its init scripts + +For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. + +There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! + +## [Chocolatey](https://chocolatey.org) + +### পূর্বশর্ত + +Head over to the [Chocolatey installation page](https://chocolatey.org/install) and follow the instructions to install Chocolatey. + +### ইন্সটল + +```powershell +choco install starship +``` + +## [termux](https://termux.com) + +### পূর্বশর্ত + +```sh +pkg install getconf +``` + +### ইন্সটল + +```sh +curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.termux/files/usr/bin +``` + +## [Funtoo Linux](https://www.funtoo.org/Welcome) + +### ইন্সটল + +On Funtoo Linux, starship can be installed from [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage: + +```sh +emerge app-shells/starship +``` + +## [Nix](https://nixos.wiki/wiki/Nix) + +### Getting the Binary + +#### Imperatively + +```sh +nix-env -iA nixos.starship +``` + +#### Declarative, single user, via [home-manager](https://github.com/nix-community/home-manager) + +Enable the `programs.starship` module in your `home.nix` file, and add your settings + +```nix +{ + programs.starship = { + enable = true; + # Configuration written to ~/.config/starship.toml + settings = { + # add_newline = false; + + # character = { + # success_symbol = "[➜](bold green)"; + # error_symbol = "[➜](bold red)"; + # }; + + # package.disabled = true; + }; + }; +} +``` + +then run + +```sh +home-manager switch +``` + +#### Declarative, system-wide, with NixOS + +Add `pkgs.starship` to `environment.systemPackages` in your `configuration.nix`, then run + +```sh +sudo nixos-rebuild switch +``` diff --git a/docs/bn-BD/migrating-to-0.45.0/README.md b/docs/bn-BD/migrating-to-0.45.0/README.md new file mode 100644 index 00000000..18661c3b --- /dev/null +++ b/docs/bn-BD/migrating-to-0.45.0/README.md @@ -0,0 +1,267 @@ +# Migrating to v0.45.0 + +Starship v0.45.0 is a release containing breaking changes, in preparation for the big v1.0.0. We have made some major changes around how configuration is done on the prompt, to allow for a greater degree of customization. + +This guide is intended to walk you through the breaking changes. + +## `prompt_order` has been replaced by a root-level `format` + +Previously to v0.45.0, `prompt_order` would accept an array of module names in the order which they should be rendered by Starship. + +Starship v0.45.0 instead accepts a `format` value, allowing for customization of the prompt outside of the modules themselves. + +**Example pre-v0.45.0 configuration** + +```toml +prompt_order = [ + "username", + "hostname", + "directory", + "git_branch", + "git_commit", + "git_state", + "git_status", + "cmd_duration", + "custom", + "line_break", + "jobs", + "battery", + "time", + "character", +] +``` + +**Example v0.45.0 configuration** + +```toml +format = """\ + $username\ + $hostname\ + $directory\ + $git_branch\ + $git_commit\ + $git_state\ + $git_status\ + $cmd_duration\ + $custom\ + $line_break\ + $jobs\ + $battery\ + $time\ + $character\ + """ +``` + +## Module `prefix` and `suffix` have been replaced by `format` + +Previously to v0.45.0, some modules would accept `prefix` and/or `suffix` in order to stylize the way that modules are rendered. + +Starship v0.45.0 instead accepts a `format` value, allowing for further customization of how modules are rendered. Instead of defining a prefix and suffix for the context-based variables, the variables can now be substituted from within a format string, which represents the module's output. + +**Example pre-v0.45.0 configuration** + +```toml +[cmd_duration] +prefix = "took " +``` + +**Example v0.45.0 configuration** + +```toml +[cmd_duration] +# $duration – The command duration (e.g. "15s") +# $style – The default style of the module (e.g. "bold yellow") +format = "took [$duration]($style) " +``` + +### Affected Modules + +#### Character + +| Removed Property | Replacement | +| ----------------------- | ---------------- | +| `symbol` | `success_symbol` | +| `use_symbol_for_status` | `error_symbol` | +| `style_success` | `success_symbol` | +| `style_failure` | `error_symbol` | + +**Changes to the Default Configuration** + +```diff +[character] +-- symbol = "❯" +-- error_symbol = "✖" +-- use_symbol_for_status = true +-- vicmd_symbol = "❮" +++ success_symbol = "[❯](bold green)" +++ error_symbol = "[❯](bold red)" +++ vicmd_symbol = "[❮](bold green)" +``` + +Previously, the `use_symbol_for_status` property was used to configure the prompt to show the `error_symbol` when the last command resulted in a non-zero status code. + +With the release of v0.45.0, we now always use `error_symbol` after non-zero status codes, unifying `use_symbol_for_status` and `error_symbol` properties. + +To configure the prompt to use the older `use_symbol_for_status = true` configuration, add the following to your config file: + +```toml +[character] +error_symbol = "[✖](bold red)" +``` + +_Note:_ The `character` element automatically adds a space after, so unlike the other `format` strings, we specifically do not add one in the above examples. + +#### Command Duration + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `prefix` | `format` | + +**Changes to the Default Configuration** + +```diff +[cmd_duration] +-- prefix = "took " +++ format = "took [$duration]($style) " +``` + +#### Directory + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `prefix` | `format` | + +**Changes to the Default Configuration** + +```diff +[directory] +-- prefix = "in " +++ format = "[$path]($style)[$read_only]($read_only_style) " +``` + +#### Environment Variable + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `prefix` | `format` | +| `suffix` | `format` | + +**Changes to the Default Configuration** + +```diff +[env_var] +-- prefix = "" +-- suffix = "" +++ format = "with [$env_value]($style) " +``` + +#### Git Commit + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `prefix` | `format` | +| `suffix` | `format` | + +**Changes to the Default Configuration** + +```diff +[git_commit] +-- prefix = "(" +-- suffix = ")" +++ format = '[\($hash\)]($style) ' +``` + +#### Git Status + +| Removed Property | Replacement | +| ----------------- | ----------- | +| `prefix` | `format` | +| `suffix` | `format` | +| `show_sync_count` | `format` | + +**Changes to the Default Configuration** + +```diff +[git_status] +-- prefix = "[" +-- suffix = "]" +-- show_sync_count = false +++ format = '([\[$all_status$ahead_behind\]]($style) )' +``` + +Previously, the `show_sync_count` property was used to configure the prompt to show the number of commits the branch was ahead or behind the remote branch. + +With the release of v0.45.0, this has been replaced with three separate properties, `ahead`, `behind`, and `diverged`. + +To configure the prompt to use the older `show_sync_count = true` configuration, set the following to your config file: + +```toml +[git_status] +ahead = "⇡${count}" +diverged = "⇕⇡${ahead_count}⇣${behind_count}" +behind = "⇣${count}" +``` + +#### Hostname + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `prefix` | `format` | +| `suffix` | `format` | + +**Changes to the Default Configuration** + +```diff +[hostname] +-- prefix = "" +-- suffix = "" +++ format = "[$hostname]($style) in " +``` + +#### Singularity + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `label` | `format` | +| `prefix` | `format` | +| `suffix` | `format` | + +**Changes to the Default Configuration** + +```diff +[singularity] +-- prefix = "" +-- suffix = "" +++ format = '[$symbol\[$env\]]($style) ' +``` + +#### Time + +| Removed Property | Replacement | +| ---------------- | ------------- | +| `format` | `time_format` | + +**Changes to the Default Configuration** + +```diff +[time] +-- format = "🕙[ %T ]" +++ time_format = "%T" +++ format = "at 🕙[$time]($style) " +``` + +#### Custom Commands + +| Removed Property | Replacement | +| ---------------- | ----------- | +| `prefix` | `format` | +| `suffix` | `format` | + +**Changes to the Default Configuration** + +```diff +[custom.example] +-- prefix = "" +-- suffix = "" +++ format = "[$symbol$output]($style) " +``` diff --git a/docs/bn-BD/presets/README.md b/docs/bn-BD/presets/README.md new file mode 100644 index 00000000..2e332ad1 --- /dev/null +++ b/docs/bn-BD/presets/README.md @@ -0,0 +1,71 @@ +# Presets + +Here is a collection of community-submitted configuration presets for Starship. If you have a preset to share, please [submit a PR](https://github.com/starship/starship/edit/master/docs/presets/README.md) updating this file! 😊 + +To get details on how to use a preset, simply click on the image. + +## [Nerd Font Symbols](./nerd-font.md) + +This preset changes the symbols for each module to use Nerd Font symbols. + +[![Screenshot of Nerd Font Symbols preset](/presets/img/nerd-font-symbols.png "Click to view Nerd Font Symbols preset")](./nerd-font) + +## [No Nerd Fonts](./no-nerd-font.md) + +This preset changes the symbols for several modules so that no Nerd Font symbols are used anywhere in the prompt. + +::: tip + +This preset will become the default preset [in a future release of starship](https://github.com/starship/starship/pull/3544). + +::: + +[Click to view No Nerd Font preset](./no-nerd-font) + +## [Bracketed Segments](./bracketed-segments.md) + +This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.). + +[![Screenshot of Bracketed Segments preset](/presets/img/bracketed-segments.png "Click to view Bracketed Segments preset")](./bracketed-segments) + +## [Plain Text Symbols](./plain-text.md) + +This preset changes the symbols for each module into plain text. Great if you don't have access to Unicode. + +[![Screenshot of Plain Text Symbols preset](/presets/img/plain-text-symbols.png "Click to view Plain Text Symbols preset")](./plain-text) + +## [No Runtime Versions](./no-runtimes.md) + +This preset hides the version of language runtimes. If you work in containers or virtualized environments, this one is for you! + +[![Screenshot of Hide Runtime Versions preset](/presets/img/no-runtime-versions.png "Click to view No Runtime Versions preset")](./no-runtimes) + +## [No Empty Icons](./no-empty-icons.md) + +This preset does not show icons if the toolset is not found. + +[![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png "Click to view No Runtime Versions preset")](./no-empty-icons.md) + +## [Pure Prompt](./pure-preset.md) + +This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure). + +[![Screenshot of Pure preset](/presets/img/pure-preset.png "Click to view Pure Prompt preset")](./pure-preset) + +## [Pastel Powerline](./pastel-powerline.md) + +This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship. + +[![Screenshot of Pastel Powerline preset](/presets/img/pastel-powerline.png "Click to view Pure Prompt preset")](./pastel-powerline) + +## [Tokyo Night](./tokyo-night.md) + +This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). + +[![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/bn-BD/presets/bracketed-segments.md b/docs/bn-BD/presets/bracketed-segments.md new file mode 100644 index 00000000..982afb20 --- /dev/null +++ b/docs/bn-BD/presets/bracketed-segments.md @@ -0,0 +1,17 @@ +[Return to Presets](./README.md#bracketed-segments) + +# Bracketed Segments Preset + +This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.). + +![Screenshot of Bracketed Segments preset](/presets/img/bracketed-segments.png) + +### Configuration + +```sh +starship preset bracketed-segments -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/bracketed-segments.toml) + +<<< @/.vuepress/public/presets/toml/bracketed-segments.toml diff --git a/docs/bn-BD/presets/gruvbox-rainbow.md b/docs/bn-BD/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..49847d61 --- /dev/null +++ b/docs/bn-BD/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### পূর্বশর্ত + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### Configuration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/bn-BD/presets/jetpack.md b/docs/bn-BD/presets/jetpack.md new file mode 100644 index 00000000..0f52a9a9 --- /dev/null +++ b/docs/bn-BD/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/bn-BD/presets/nerd-font.md b/docs/bn-BD/presets/nerd-font.md new file mode 100644 index 00000000..2f81f2f1 --- /dev/null +++ b/docs/bn-BD/presets/nerd-font.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#nerd-font-symbols) + +# Nerd Font Symbols Preset + +This preset changes the symbols for each module to use Nerd Font symbols. + +![Screenshot of Nerd Font Symbols preset](/presets/img/nerd-font-symbols.png) + +### পূর্বশর্ত + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Fira Code Nerd Font) + +### Configuration + +```sh +starship preset nerd-font-symbols -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/nerd-font-symbols.toml) + +<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/bn-BD/presets/no-empty-icons.md b/docs/bn-BD/presets/no-empty-icons.md new file mode 100644 index 00000000..aa4a211f --- /dev/null +++ b/docs/bn-BD/presets/no-empty-icons.md @@ -0,0 +1,17 @@ +[Return to Presets](./README.md#no-empty-icons) + +# No Empty Icons Preset + +If toolset files are identified the toolset icon is displayed. If the toolset is not found to determine its version number, it is not displayed. This preset changes the behavior to display the icon only if the toolset information can be determined. + +![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png) + +### Configuration + +```sh +starship preset no-empty-icons -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/no-empty-icons.toml) + +<<< @/.vuepress/public/presets/toml/no-empty-icons.toml diff --git a/docs/bn-BD/presets/no-nerd-font.md b/docs/bn-BD/presets/no-nerd-font.md new file mode 100644 index 00000000..a70e85e7 --- /dev/null +++ b/docs/bn-BD/presets/no-nerd-font.md @@ -0,0 +1,19 @@ +[Return to Presets](./README.md#no-nerd-fonts) + +# No Nerd Fonts Preset + +This preset restricts the use of symbols to those from emoji and powerline sets. + +This means that even without a Nerd Font installed, you should be able to view all module symbols. + +This preset will become the default preset in a future release of starship. + +### Configuration + +```sh +starship preset no-nerd-font -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/no-nerd-font.toml) + +<<< @/.vuepress/public/presets/toml/no-nerd-font.toml diff --git a/docs/bn-BD/presets/no-runtimes.md b/docs/bn-BD/presets/no-runtimes.md new file mode 100644 index 00000000..c0805d11 --- /dev/null +++ b/docs/bn-BD/presets/no-runtimes.md @@ -0,0 +1,17 @@ +[Return to Presets](./README.md#no-runtime-versions) + +# No Runtime Versions Preset + +This preset hides the version of language runtimes. If you work in containers or virtualized environments, this one is for you! + +![Screenshot of Hide Runtime Versions preset](/presets/img/no-runtime-versions.png) + +### Configuration + +```sh +starship preset no-runtime-versions -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/no-runtime-versions.toml) + +<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml diff --git a/docs/bn-BD/presets/pastel-powerline.md b/docs/bn-BD/presets/pastel-powerline.md new file mode 100644 index 00000000..3a2ec86b --- /dev/null +++ b/docs/bn-BD/presets/pastel-powerline.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#pastel-powerline) + +# Pastel Powerline Preset + +This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship. + +![Screenshot of Pastel Powerline preset](/presets/img/pastel-powerline.png) + +### পূর্বশর্ত + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Caskaydia Cove Nerd Font) + +### Configuration + +```sh +starship preset pastel-powerline -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/pastel-powerline.toml) + +<<< @/.vuepress/public/presets/toml/pastel-powerline.toml diff --git a/docs/bn-BD/presets/plain-text.md b/docs/bn-BD/presets/plain-text.md new file mode 100644 index 00000000..1e17b4bc --- /dev/null +++ b/docs/bn-BD/presets/plain-text.md @@ -0,0 +1,17 @@ +[Return to Presets](./README.md#plain-text-symbols) + +## Plain Text Symbols Preset + +This preset changes the symbols for each module into plain text. Great if you don't have access to Unicode. + +![Screenshot of Plain Text Symbols preset](/presets/img/plain-text-symbols.png) + +### Configuration + +```sh +starship preset plain-text-symbols -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/plain-text-symbols.toml) + +<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml diff --git a/docs/bn-BD/presets/pure-preset.md b/docs/bn-BD/presets/pure-preset.md new file mode 100644 index 00000000..b75a0056 --- /dev/null +++ b/docs/bn-BD/presets/pure-preset.md @@ -0,0 +1,17 @@ +[Return to Presets](./README.md#pure) + +# Pure Preset + +This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure). + +![Screenshot of Pure preset](/presets/img/pure-preset.png) + +### Configuration + +```sh +starship preset pure-preset -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/pure-preset.toml) + +<<< @/.vuepress/public/presets/toml/pure-preset.toml diff --git a/docs/bn-BD/presets/tokyo-night.md b/docs/bn-BD/presets/tokyo-night.md new file mode 100644 index 00000000..538fe7ba --- /dev/null +++ b/docs/bn-BD/presets/tokyo-night.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#pastel-powerline) + +# Tokyo Night Preset + +This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). + +![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png) + +### পূর্বশর্ত + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### Configuration + +```sh +starship preset tokyo-night -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/tokyo-night.toml) + +<<< @/.vuepress/public/presets/toml/tokyo-night.toml diff --git a/docs/ckb-IR/config/README.md b/docs/ckb-IR/config/README.md index bd803efa..7bc81eea 100644 --- a/docs/ckb-IR/config/README.md +++ b/docs/ckb-IR/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### نموونە @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -671,7 +683,7 @@ The character will tell you whether the last command was successful or not. It c By default it only changes color. If you also want to change its shape take a look at [this example](#with-custom-error-shape). -::: warning +::: ئاگادارکردنەوە `vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| گۆڕاو | نموونە | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### نموونە + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| گۆڕاو | نموونە | Description | +| ----------------- | ------ | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### نموونە + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Default | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | Default | Description | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### نموونە +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: ئاگادارکردنەوە + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Default | Description | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| گۆڕاو | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | گۆڕاو | نموونە | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| گۆڕاو | نموونە | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/ckb-IR/guide/README.md b/docs/ckb-IR/guide/README.md index f4f5d6dd..00d92ba4 100644 --- a/docs/ckb-IR/guide/README.md +++ b/docs/ckb-IR/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="شوێن @StarshipPrompt بکەوە لەسەر تویتەر" /> + Stand With Ukraine

@@ -143,8 +148,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/ckb-IR/presets/README.md b/docs/ckb-IR/presets/README.md index 58dece9f..0e31d455 100644 --- a/docs/ckb-IR/presets/README.md +++ b/docs/ckb-IR/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/ckb-IR/presets/gruvbox-rainbow.md b/docs/ckb-IR/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..83bc24e1 --- /dev/null +++ b/docs/ckb-IR/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### پێشمەرجەکان + +- [فۆنتێکی Nerd](https://www.nerdfonts.com/) دامەزراوە و چالاککراوە لە تێرمیناڵەکەتا + +### ڕێکخستن + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ckb-IR/presets/jetpack.md b/docs/ckb-IR/presets/jetpack.md new file mode 100644 index 00000000..d959acf4 --- /dev/null +++ b/docs/ckb-IR/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### ڕێکخستن + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/de-DE/config/README.md b/docs/de-DE/config/README.md index d5d65f99..96b5ba07 100644 --- a/docs/de-DE/config/README.md +++ b/docs/de-DE/config/README.md @@ -206,6 +206,13 @@ Dies ist eine Liste mit Prompt-weiten Konfigurationsoptionen. | `add_newline` | `true` | Fügt leere Zeilen zwischen Shell Prompts ein. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Beispiel @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Optionen | Option | Standardwert | Beschreibung | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Tabelle der Regionaliasen, die zusätzlich zum AWS-Namen angezeigt werden sollen. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | Stil für dieses Modul. | -| `expiration_symbol` | `X` | Das Symbol, das angezeigt wird, wenn die temporären Anmeldeinformationen abgelaufen sind. | +| `expiration_symbol` | `'X'` | Das Symbol, das angezeigt wird, wenn die temporären Anmeldeinformationen abgelaufen sind. | | `disabled` | `false` | Deaktiviert das `aws`-Modul. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Optionen -| Option | Standardwert | Beschreibung | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | Stil für dieses Modul. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Standardwert | Beschreibung | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | Stil für dieses Modul. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Optionen + +| Option | Standartwert | Beschreibung | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | Das Format für das Modul. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | Stil für dieses Modul. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Beispiel | Beschreibung | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Spiegelt den Wert der Option `symbol`. | +| style\* | `red bold` | Spiegelt den Wert der Option `style`. | + +*: This variable can only be used as a part of a style string + +### Beispiel + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | Stil für dieses Modul. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Optionen + +| Option | Standartwert | Beschreibung | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | Das Format für das Modul. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Beispiel | Beschreibung | +| ----------------- | -------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Beispiel + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Optionen @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Standartwert | Beschreibung | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | Das Format für das Modul. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | Stil für dieses Modul. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | Stil für dieses Modul. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Standartwert | Beschreibung | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Das Format für das Modul. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | Das Format für das Modul. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | Stil für dieses Modul. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | Stil für dieses Modul. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Standartwert | Beschreibung | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Das Format für das Modul. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | Stil für dieses Modul. | +| `format` | `'via [$symbol($version )]($style)'` | Das Format für das Modul. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | Stil für dieses Modul. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ Das `hostname`-Modul zeigt den Hostnamen des Systems an. ### Optionen -| Option | Standartwert | Beschreibung | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Zeigt den Hostnamen nur, wenn via SSH-Sitzung verbunden. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | Das Format für das Modul. | -| `style` | `'bold dimmed green'` | Stil für dieses Modul. | -| `disabled` | `false` | Deaktiviert das `hostname`-Modul. | +| Option | Standartwert | Beschreibung | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Zeigt den Hostnamen nur, wenn via SSH-Sitzung verbunden. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | Das Format für das Modul. | +| `style` | `'bold dimmed green'` | Stil für dieses Modul. | +| `disabled` | `false` | Deaktiviert das `hostname`-Modul. | ### Variables @@ -2126,7 +2215,9 @@ Das `hostname`-Modul zeigt den Hostnamen des Systems an. *: This variable can only be used as a part of a style string -### Beispiel +### Beispiele + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Optionen +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Standartwert | Beschreibung | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | Das Format für das Modul. | | `style` | `'cyan bold'` | Stil für dieses Modul. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Deaktiviert das `kubernetes`-Modul. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Beschreibung | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Beispiel | Beschreibung | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Zeilenumbruch @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | Stil für dieses Modul. | | `disabled` | `false` | Deaktiviert das `nodejs`-Modul. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ Dieses Modul ist standardmäßig deaktiviert. Setze in deiner Konfiguration `dis | Option | Standartwert | Beschreibung | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | Das Format für das Modul. | -| `style` | `"bold white"` | Stil für dieses Modul. | +| `format` | `'[$symbol]($style)'` | Das Format für das Modul. | +| `style` | `'bold white'` | Stil für dieses Modul. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | Stil für dieses Modul. | | `pyenv_version_name` | `false` | Verwende `pyenv` um die Python-Versionzu beziehen. | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ Dieses Modul ist standardmäßig deaktiviert. Setze in deiner Konfiguration `dis ### Optionen -| Option | Standartwert | Beschreibung | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | Das Format für das Modul. | -| `style` | `'white bold'` | Stil für dieses Modul. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Standartwert | Beschreibung | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | Das Format für das Modul. | +| `style` | `'white bold'` | Stil für dieses Modul. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Standartwert | Beschreibung | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Das Format für das Modul. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | Das Format für das Modul. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | Stil für dieses Modul. | +| `style` | `'bold blue'` | Stil für dieses Modul. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- Das aktuelle Verzeichnis enthält eine `template.typ`-Datei +- The current directory contains any `*.typ` file + +### Optionen + +| Option | Standartwert | Beschreibung | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Das Format für das Modul. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | Stil für dieses Modul. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Beispiel | Beschreibung | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Spiegelt den Wert der Option `symbol` | +| style\* | | Spiegelt den Wert der Option `style` | + +*: This variable can only be used as a part of a style string + ## Username Das `username` Modul zeigt den Namen des aktiven Benutzers. Das Modul wird gezeigt, wenn mindestens einer der folgenden Punkte erfüllt ist: diff --git a/docs/de-DE/guide/README.md b/docs/de-DE/guide/README.md index ef1bfa88..c2744e21 100644 --- a/docs/de-DE/guide/README.md +++ b/docs/de-DE/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Folge @StarshipPrompt auf Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

-**Der minimalistische, super schnelle und unendlich anpassbare Prompt für jede Shell!** +**Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell!** - **Schnell:** sie ist schnell – _sehr, sehr_ schnell! 🚀 - **Konfigurierbar:** konfiguriere jedes Detail der Prompt. @@ -229,6 +232,7 @@ Alternatively, install Starship using any of the following package managers: | Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | | NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | | Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
diff --git a/docs/de-DE/presets/README.md b/docs/de-DE/presets/README.md index bf65e778..3d975aee 100644 --- a/docs/de-DE/presets/README.md +++ b/docs/de-DE/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/de-DE/presets/gruvbox-rainbow.md b/docs/de-DE/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..2d0ffec6 --- /dev/null +++ b/docs/de-DE/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Zurück zu den Voreinstellungen](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Voraussetzungen + +- Eine [Nerd Font](https://www.nerdfonts.com/) installiert und aktiviert in deinem Terminal + +### Konfiguration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Zum Herunterladen der TOML Datei klicken](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/de-DE/presets/jetpack.md b/docs/de-DE/presets/jetpack.md new file mode 100644 index 00000000..c7fa0e9c --- /dev/null +++ b/docs/de-DE/presets/jetpack.md @@ -0,0 +1,24 @@ +[Zurück zu den Voreinstellungen](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Konfiguration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Zum Herunterladen der TOML Datei klicken](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/es-ES/config/README.md b/docs/es-ES/config/README.md index 2735df22..5439fec7 100644 --- a/docs/es-ES/config/README.md +++ b/docs/es-ES/config/README.md @@ -78,7 +78,7 @@ In TOML syntax, [text values](https://toml.io/en/v1.0.0#string) are declared wit The following Starship syntax symbols have special usage in a format string and must be escaped to display as that character: `$ [ ] ( )`. -| Symbol | Tipo | Notas | +| Simbol | Tipo | Notas | | ------ | ------------------------- | ------------------------------------------------------ | | `'` | literal string | less escaping | | `"` | string | more escaping | @@ -152,15 +152,15 @@ En la segunda parte, que está encerrada entre `()`, es una [cadena de estilo](# Por ejemplo: -- `'[on](red bold)'` will print a string `on` with bold text colored red. -- `'[⌘ $version](bold green)'` will print a symbol `⌘` followed by the content of variable `version`, with bold text colored green. -- `'[a [b](red) c](green)'` will print `a b c` with `b` red, and `a` and `c` green. +- `'[on](red bold)'` imprimirá el texto `on` con color rojo y en negrita. +- `'[⌘ $version](bold green)'` imprimirá el símbolo `⌘` seguido por el contenido de la variable `version` con color verde en negrita. +- `'[a [b](red) c](green)'` imprimirá `a b c` donde `b` es rojo, pero `a` y `c` son verde. #### Cadenas de Estilo La mayoría de los módulos de starship permiten configurar sus estilos de visualización. Esto se consigue con una entrada (normalmente llamada `style`) que no es más que un texto donde se especifica la configuración. A continuación mostramos algunos ejemplos de cadenas de estilo junto con su funcionalidad. Para más detalles sobre la sintaxis completa, consultar [la guía de configuración avanzada](/advanced-config/). -- `'fg:green bg:blue'` sets green text on a blue background +- `'fg:green bg:blue'` define el texto con color verde y el color de fondo azul - `'bg:blue fg:bright-green'` sets bright green text on a blue background - `'bold fg:27'` sets bold text with [ANSI color](https://i.stack.imgur.com/KTSQa.png) 27 - `'underline bg:#bf5700'` sets underlined text on a burnt orange background @@ -206,6 +206,13 @@ Esta es la lista de opciones de configuración del prompt. | `add_newline` | `true` | Inserta un línea en blanco entre las instrucciones del intérprete de comandos. | | `paleta` | `''` | Establece la paleta de color de `paletas` a utilizar. | | `paletas` | `{}` | Colección de paletas de colores que asignan [colores](/advanced-config/#style-strings) a nombres definidos por el usuario. Tenga en cuenta que las paletas de colores no pueden hacer referencia a sus propias definiciones de color. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Ejemplo @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -345,12 +355,14 @@ The module will display a profile only if its credentials are present in `~/.aws Cuando se utiliza [aws-vault](https://github.com/99designs/aws-vault), el perfil se obtiene de la variable de entorno `AWS_VAULT` y la fecha de expiración de credenciales se obtiene de la variable de entorno `AWS_SESSION_EXPIRATION`. -Cuando se utiliza [awsu](https://github.com/kreuzwerker/awsu) el perfil se lee de la variable de entorno `AWSU_PROFILE`. +Cuando uses [awsu](https://github.com/kreuzwerker/awsu) el perfil se obtiene de la variable de entorno `AWSU_PROFILE`. Cuando se utiliza [AWSume](https://awsu.me), el perfil se obtiene de la variable de entorno `AWSUME_PROFILE` y la fecha de expiración de credenciales se obtiene de la variable de entorno `AWSUME_EXPIRATION`. When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Opciones | Opción | Predeterminado | Descripción | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Tabla de alias de región para mostrar además del nombre AWS. | | `profile_aliases` | `{}` | Tabla de alias de región para mostrar además del nombre AWS. | | `style` | `'bold yellow'` | El estilo del módulo. | -| `expiration_symbol` | `X` | El símbolo mostrado cuando las credenciales temporales han caducado. | +| `expiration_symbol` | `'X'` | El símbolo mostrado cuando las credenciales temporales han caducado. | | `disabled` | `false` | Desactiva el módulo AWS. | | `force_display` | `false` | Si `true` muestra información incluso si `credentials`, `credential_process` o `sso_start_url` no han sido configuradas. | @@ -472,7 +484,7 @@ very-long-subscription-name = 'vlsn' ## Battery -El módulo `battery` muestra la cantidad de batería y si se está cargando o no. El módulo solamente es visible cuando la batería del dispositivo está por debajo del 10%. +El módulo `battery` muestra qué tan cargada está la batería del dispositivo y su estado de carga actual. El módulo solamente es visible cuando la batería del dispositivo está por debajo del 10%. ### Opciones @@ -620,17 +632,17 @@ El módulo `c` muestra información sobre su compilador de C. Por defecto el mó ### Opciones -| Opción | Predeterminado | Descripción | -| ------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | La cadena de formato para el módulo. | -| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | El símbolo usado antes de mostrar los detalles del compilador | -| `detect_extensions` | `['c', 'h']` | Qué extensiones deberían activar este módulo. | -| `detect_files` | `[]` | Qué nombres de archivo deberían activar este módulo. | -| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | Cómo detectar cuál compilador es | -| `style` | `'bold 149'` | El estilo del módulo. | -| `disabled` | `false` | Deshabilita el módulo `c`. | +| Opción | Predeterminado | Descripción | +| ------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | La cadena de formato para el módulo. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | El símbolo usado antes de mostrar los detalles del compilador | +| `detect_extensions` | `['c', 'h']` | Qué extensiones deberían activar este módulo. | +| `detect_files` | `[]` | Qué nombres de archivo deberían activar este módulo. | +| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | Cómo detectar cuál compilador es | +| `style` | `'bold 149'` | El estilo del módulo. | +| `disabled` | `false` | Deshabilita el módulo `c`. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Opciones + +| Opción | Predeterminado | Descripción | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | El formato del módulo. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | El estilo del módulo. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Qué extensiones deberían activar este módulo. | +| `detect_files` | `['.envrc']` | Qué nombres de archivo deberían activar este módulo. | +| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Ejemplo | Descripción | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Refleja el valor de la opción `symbol`. | +| style\* | `red bold` | Refleja el valor de la opción `style`. | + +*: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo + +### Ejemplo + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Contexto de Docker El módulo `docker_context` muestra el [contexto de Docker](https://docs.docker.com/engine/context/working-with-contexts/) actualmente activo si no está definido en `default` o si las variables de entorno `DOCKER_MACHINE_NAME`, `DOCKER_HOST` o `DOCKER_CONTEXT` están definidas (como se entiende para sobrescribir el contexto en uso). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | El estilo del módulo. | -| `detect_extensions` | `[fnl]` | Qué extensiones deberían activar este módulo. | +| `detect_extensions` | `['fnl']` | Qué extensiones deberían activar este módulo. | | `detect_files` | `[]` | Qué nombres de archivo deberían activar este módulo. | | `detect_folders` | `[]` | Qué carpetas deberían activar estos módulos. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Opciones + +| Opción | Predeterminado | Descripción | +| -------------------- | ------------------------------------------------------------ | -------------------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | El formato del módulo. | +| `added_style` | `'bold green'` | El estilo para el recuento añadido. | +| `deleted_style` | `'bold red'` | El estilo para el recuento eliminado. | +| `only_nonzero_diffs` | `true` | Mostrar sólo el estado de los elementos cambiados. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Ejemplo | Descripción | +| ----------------- | ------- | --------------------------------------------- | +| añadido | `1` | El número actual de líneas añadidas | +| eliminado | `2` | El número actual de líneas eliminadas | +| added_style\* | | Refleja el valor de la opción `added_style` | +| deleted_style\* | | Refleja el valor de la opción `deleted_style` | + +*: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo + +### Ejemplo + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) El módulo `gcloud` muestra la configuración actual para el CLI de [`gcloud`](https://cloud.google.com/sdk/gcloud). Esto se basa en el archivo `~/.config/gcloud/active_config`, el archivo `~/.config/gcloud/configurations/config_{CONFIG NAME}` y la variable de entorno `CLOUDSDK_CONFIG`. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Opciones @@ -1548,7 +1636,7 @@ When the module is enabled it will always be active, unless `detect_env_vars` ha | --------- | ------------- | ----------------------------------------------------------------------------- | | region | `us-central1` | La actual región GCP | | cuenta | `foo` | El perfil actual de GCP | -| dominio | `ejemplo.com` | El dominio actual del perfil GCP | +| dominio | `example.com` | El dominio actual del perfil GCP | | proyecto | | El proyecto GCP actual | | activo | `default` | El nombre de configuración activo escrito en `~/.config/gcloud/active_config` | | symbol | | Refleja el valor de la opción `symbol` | @@ -1745,7 +1833,7 @@ Este módulo está deshabilitado por defecto. Para activarlo, establece `disable | Variable | Ejemplo | Descripción | | ----------------- | ------- | --------------------------------------------- | | añadido | `1` | El número actual de líneas añadidas | -| borrado | `2` | El número actual de líneas eliminadas | +| eliminado | `2` | El número actual de líneas eliminadas | | added_style\* | | Refleja el valor de la opción `added_style` | | deleted_style\* | | Refleja el valor de la opción `deleted_style` | @@ -1786,7 +1874,7 @@ El módulo Git Status es muy lento en los directorios de Windows (por ejemplo ba | `modificado` | `'!'` | El formato de `modified` | | `staged` | `'+'` | El formato de `staged` | | `renamed` | `'»'` | El formato de `renamed` | -| `borrado` | `'✘'` | El formato de `deleted` | +| `eliminado` | `'✘'` | El formato de `deleted` | | `typechanged` | `""` | The format of `typechange` | | `style` | `'bold red'` | El estilo del módulo. | | `ignore_submodules` | `false` | Ignorar cambios a los submódulos. | @@ -1807,7 +1895,7 @@ Las siguientes variables se pueden utilizar en `format`: | `modificado` | Muestra `modified` cuando hay modificaciones de archivo en el directorio de trabajo. | | `staged` | Muestra `staged` cuando se ha añadido un nuevo archivo al área de preparación. | | `renamed` | Muestra `renamed` cuando un archivo renombrado ha sido añadido al área de preparación. | -| `borrado` | Muestra `deleted` cuando un archivo ha sido añadido al área de preparación. | +| `eliminado` | Muestra `deleted` cuando un archivo ha sido añadido al área de preparación. | | `typechanged` | Displays `typechange` when a file's type has been changed in the staging area. | | style\* | Refleja el valor de la opción `style` | @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Opción | Predeterminado | Descripción | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'vía [$symbol]($style) '` | El formato del módulo. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | El estilo del módulo. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | El estilo del módulo. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Opción | Predeterminado | Descripción | | ------------------- | ------------------------------------ | --------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | El formato del módulo. | -| `version_format` | `"v${raw}"` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Qué extensiones deberían activar este módulo. | +| `format` | `'via [$symbol($version )]($style)'` | El formato del módulo. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Qué extensiones deberían activar este módulo. | | `detect_files` | `[]` | Qué nombres de archivo deberían activar este módulo. | -| `detect_folders` | `["gradle"]` | Qué carpetas deberían activar este módulo. | -| `style` | `"bold bright-cyan"` | El estilo del módulo. | +| `detect_folders` | `['gradle']` | Qué carpetas deberían activar este módulo. | +| `style` | `'bold bright-cyan'` | El estilo del módulo. | | `disabled` | `false` | Deshabilita el módulo `gradle`. | | `recursivo` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Opción | Predeterminado | Descripción | | ------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | El formato del módulo. | -| `version_format` | `"v${raw}"` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Qué extensiones deberían activar este módulo. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Qué nombres de archivo deberían activar este módulo. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Qué carpetas deberían activar estos módulos. | -| `symbol` | `"⌘ "` | Una cadena de formato que representa el símbolo de Helm. | -| `style` | `"bold fg:202"` | El estilo del módulo. | +| `format` | `'via [$symbol($version )]($style)'` | El formato del módulo. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Qué extensiones deberían activar este módulo. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Qué nombres de archivo deberían activar este módulo. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Qué carpetas deberían activar estos módulos. | +| `symbol` | `'⌘ '` | Una cadena de formato que representa el símbolo de Helm. | +| `style` | `'bold fg:202'` | El estilo del módulo. | | `disabled` | `false` | Deshabilita el módulo `haxe`. | ### Variables @@ -2107,26 +2195,41 @@ El módulo `hostname` muestra el nombre de host del sistema. ### Opciones -| Opción | Predeterminado | Descripción | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | Mostrar sólo el nombre de host cuando esté conectado a una sesión SSH. | -| `ssh_symbol` | `'🌐 '` | Una cadena de formato que representa el símbolo cuando se conecta a la sesión SSH. | -| `trim_at` | `'.'` | Cadena en la que el nombre del host se corta, después de la primera coincidencia. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | El formato del módulo. | -| `style` | `'negrita oscurecida verde'` | El estilo del módulo. | -| `disabled` | `false` | Deshabilita el módulo `hostname`. | +| Opción | Predeterminado | Descripción | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `ssh_only` | `true` | Mostrar sólo el nombre de host cuando esté conectado a una sesión SSH. | +| `ssh_symbol` | `'🌐 '` | Una cadena de formato que representa el símbolo cuando se conecta a la sesión SSH. | +| `trim_at` | `'.'` | Cadena en la que el nombre del host se corta, después de la primera coincidencia. `'.'` will stop after the first dot. `''` deshabilitará cualquier truncamiento. | +| `detect_env_vars` | `[]` | Qué variable(s) de entorno deben activar este módulo. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | El formato del módulo. | +| `style` | `'negrita oscurecida verde'` | El estilo del módulo. | +| `disabled` | `false` | Deshabilita el módulo `hostname<0>. + + + -### Variables +

Variables

-| Variable | Ejemplo | Descripción | -| --------------- | ------------- | -------------------------------------------------------------- | -| nombre del host | `computadora` | El nombre de host de la computadora | -| style\* | | Refleja el valor de la opción `style` | -| ssh_symbol | `'🌏 '` | El símbolo a representar cuando está conectado a la sesión SSH | + + + + + + + + + + + + - - -
VariableEjemploDescripción
nombre del hostcomputadora` | El nombre de host de la computadora | +| style\* | | Refleja el valor de la opción `style` | +| ssh_symbol | `'🌏 '` | El símbolo a representar cuando está conectado a la sesión SSH | *: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo -### Ejemplo +### Ejemplos + +#### Mostrar siempre el nombre del host ```toml # ~/.config/starship.toml @@ -2138,6 +2241,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Ocultar el nombre de host en sesiones remotas de tmux + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java El módulo `java` muestra la versión instalada de [Java](https://www.oracle.com/java/). Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes condiciones: @@ -2317,13 +2431,13 @@ symbol = '🅺 ' # ~/.config/starship.toml [kotlin] -# Uses the Kotlin Compiler binary to get the installed version +# Utiliza el compilador binario Kotlink para obtener la versión instalada kotlin_binary = 'kotlinc' ``` ## Kubernetes -Muestra el nombre actual del [contexto de Kubernetes](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) y, si se establece, el espacio de nombres, el usuario y el clúster del archivo kubeconfig. El espacio de nombres necesita establecerse en el archivo kubeconfig, esto puede hacerse mediante `kubectl config set-context starship-context --namespace astronaut`. Del mismo modo, el usuario y clúster pueden establecerse con `kubectl config set-context starship-context --user starship-user` y `kubectl config set-context starship-context --cluster starship-cluster`. Si se establece la variable de entorno `$KUBECONFIG`, el módulo usará eso si no usará el `~/.kube/config`. +Muestra el nombre actual del [contexto de Kubernetes](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) y, si se establece, el espacio de nombres, el usuario y el clúster del archivo kubeconfig. El espacio de nombres necesita establecerse en el archivo kubeconfig, esto puede hacerse mediante `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. Si se establece la variable de entorno `$KUBECONFIG`, el módulo usará eso si no usará el `~/.kube/config`. ::: tip @@ -2335,18 +2449,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Opciones +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Opción | Predeterminado | Descripción | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------- | | `symbol` | `'☸ '` | Una cadena de formato que representa el símbolo mostrado antes del Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | El formato del módulo. | | `style` | `'cyan bold'` | El estilo del módulo. | -| `context_aliases` | `{}` | Tabla de alias de contexto a mostrar. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Tabla de alias de contexto a mostrar. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Qué extensiones deberían activar este módulo. | | `detect_files` | `[]` | Qué nombres de archivo deberían activar este módulo. | | `detect_folders` | `[]` | Qué carpetas deberían activar estos módulos. | +| `contextos` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Desactiva el módulo `kubernetes`. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Descripción | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Ejemplo | Descripción | @@ -2368,13 +2504,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2519,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Busqueda por Regex +#### Configuración específica del Contexto de Kubernetes -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -La expresión regular debe coincidir en todo el contexto de kube. los grupos de captura pueden ser referenciados usando `$name` y `$N` en el reemplazo. Esto está más explicado en la documentación del [crate regex](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace). - -Los nombres de cluster generados de forma larga y automática pueden ser identificados y abreviados usando expresiones regulares: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Salto de línea @@ -2730,7 +2873,7 @@ El módulo `nodejs` muestra la versión instalada de [Node.js](https://nodejs.or | `detect_folders` | `['node_modules']` | Qué carpetas deberían activar este módulo. | | `style` | `'bold green'` | El estilo del módulo. | | `disabled` | `false` | Deshabilita el módulo `nodejs`. | -| `not_capable_style` | `bold red` | El estilo para el módulo cuando una propiedad de motores en package.json no coincide con la versión de Node.js. | +| `not_capable_style` | `'bold red'` | El estilo para el módulo cuando una propiedad de motores en package.json no coincide con la versión de Node.js. | ### Variables @@ -2890,8 +3033,8 @@ Este módulo está deshabilitado por defecto. Para activarlo, establece `disable | Opción | Predeterminado | Descripción | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | El formato del módulo. | -| `style` | `"bold white"` | El estilo del módulo. | +| `format` | `'[$symbol]($style)'` | El formato del módulo. | +| `style` | `'bold white'` | El estilo del módulo. | | `disabled` | `true` | Deshabilita el módulo `os`. | | `símbolos` | | A table that maps each operating system to its symbol. | @@ -2969,7 +3112,7 @@ disabled = false [os.symbols] Windows = " " -Arch = "Arch is the best! " +Arch = "Arch es lo mejor! " ``` ## Package Version @@ -2998,14 +3141,14 @@ El módulo `package` se muestra cuando el directorio actual es el repositorio de ### Opciones -| Opción | Predeterminado | Descripción | -| ----------------- | --------------------------------- | --------------------------------------------------------------------------------------- | -| `format` | `'is [$symbol$version]($style) '` | El formato del módulo. | -| `symbol` | `'📦 '` | El símbolo usado antes de mostrar la versión del paquete. | -| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | -| `style` | `'bold 208'` | El estilo del módulo. | -| `display_private` | `false` | Activar la visualización de la versión para los paquetes marcados como privados. | -| `disabled` | `false` | Desactiva el módulo `package`. | +| Opción | Predeterminado | Descripción | +| ---------------- | --------------------------------- | --------------------------------------------------------------------------------------- | +| `format` | `'is [$symbol$version]($style) '` | El formato del módulo. | +| `symbol` | `'📦 '` | El símbolo usado antes de mostrar la versión del paquete. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `style` | `'bold 208'` | El estilo del módulo. | +| `'📦 '` | `false` | Activar la visualización de la versión para los paquetes marcados como privados. | +| `disabled` | `false` | Desactiva el módulo `package`. | ### Variables @@ -3023,7 +3166,7 @@ El módulo `package` se muestra cuando el directorio actual es el repositorio de # ~/.config/starship.toml [package] -format = 'via [🎁 $version](208 bold) ' +format = 'vía [🎁 $version](208 bold) ' ``` ## Perl @@ -3149,13 +3292,13 @@ Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes ### Variables -| Variable | Ejemplo | Descripción | -| --------- | ---------- | -------------------------------------- | -| version | `v0.12.24` | La versión de `pulumi` | -| stack | `dev` | La pila actual de Pulumi | -| username | `alice` | El usuario actual de Pulumi | -| symbol | | Refleja el valor de la opción `symbol` | -| style\* | | Refleja el valor de la opción `style` | +| Variable | Ejemplo | Descripción | +| ----------------- | ---------- | -------------------------------------- | +| version | `v0.12.24` | La versión de `pulumi` | +| stack | `dev` | La pila actual de Pulumi | +| nombre de usuario | `alice` | El usuario actual de Pulumi | +| symbol | | Refleja el valor de la opción `symbol` | +| style\* | | Refleja el valor de la opción `style` | *: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo @@ -3245,7 +3388,7 @@ Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes | `symbol` | `'🐍 '` | Una cadena de formato que representa el símbolo de Python | | `style` | `'yellow bold'` | El estilo del módulo. | | `pyenv_version_name` | `false` | Usar pyenv para obtener la versión de Python | -| `pyenv_prefix` | `pyenv` | Prefijo antes de mostrar la versión de pyenv sólo se utiliza si se utiliza pyenv | +| `pyenv_prefix` | `'pyenv'` | Prefijo antes de mostrar la versión de pyenv sólo se utiliza si se utiliza pyenv | | `python_binary` | `['python', 'python3', 'python2']` | Configura los binarios de python que Starship debería ejecutar al obtener la versión. | | `detect_extensions` | `['py']` | Qué extensiones deben activar este módulo | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Qué nombres de archivo deben activar este módulo | @@ -3300,7 +3443,7 @@ detect_extensions = [] # ~/.config/starship.toml [python] -# Muestra la versión de python desde dentro de un entorno virtual local. +# Muestra la versión de python dentro de un entorno virtual local. # # Ten en cuenta que esto solo funcionará cuando el venv esté dentro del proyecto y sólo # funcionará en el directorio que contiene el directorio venv dir pero ¿tal vez esté bien? @@ -3562,22 +3705,23 @@ Este módulo está deshabilitado por defecto. Para activarlo, establece `disable ### Opciones -| Opción | Predeterminado | Descripción | -| ---------------------- | ------------------------- | ----------------------------------------------------------------------- | -| `bash_indicator` | `'bsh'` | Una cadena de formato usada para representar bash. | -| `fish_indicator` | `'fsh'` | Una cadena de formato usada para representar fish. | -| `zsh_indicator` | `'zsh'` | Una cadena de formato usada para representar zsh. | -| `powershell_indicator` | `'psh'` | Una cadena de formato usada para representar powershell. | -| `ion_indicator` | `'ion'` | Una cadena de formato usada para representar ion. | -| `elvish_indicator` | `'esh'` | Una cadena de formato usada para representar elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | Una cadena de formato usada para representar xonsh. | -| `cmd_indicator` | `'cmd'` | Una cadena de formato usada para representar cmd. | -| `nu_indicator` | `'nu'` | Una cadena de formato usada para representar nu. | -| `unknown_indicator` | `''` | El valor por defecto que se mostrará cuando se desconoce el intérprete. | -| `format` | `'[$indicator]($style) '` | El formato del módulo. | -| `style` | `'white bold'` | El estilo del módulo. | -| `disabled` | `true` | Deshabilita el módulo `shell`. | +| Opción | Predeterminado | Descripción | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | Una cadena de formato usada para representar bash. | +| `fish_indicator` | `'fsh'` | Una cadena de formato usada para representar fish. | +| `zsh_indicator` | `'zsh'` | Una cadena de formato usada para representar zsh. | +| `powershell_indicator` | `'psh'` | Una cadena de formato usada para representar powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | Una cadena de formato usada para representar ion. | +| `elvish_indicator` | `'esh'` | Una cadena de formato usada para representar elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | Una cadena de formato usada para representar xonsh. | +| `cmd_indicator` | `'cmd'` | Una cadena de formato usada para representar cmd. | +| `nu_indicator` | `'nu'` | Una cadena de formato usada para representar nu. | +| `unknown_indicator` | `''` | El valor por defecto que se mostrará cuando se desconoce el intérprete. | +| `format` | `'[$indicator]($style) '` | El formato del módulo. | +| `style` | `'white bold'` | El estilo del módulo. | +| `disabled` | `true` | Deshabilita el módulo `shell`. | ### Variables @@ -3694,14 +3838,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Opción | Predeterminado | Descripción | | ------------------- | ------------------------------------ | --------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | El formato del módulo. | -| `version_format` | `"v${major}.${minor}.${patch}"` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Qué extensiones deberían activar este módulo. | +| `format` | `'via [$symbol($version )]($style)'` | El formato del módulo. | +| `version_format` | `'v${major}.${minor}.${patch}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Qué extensiones deberían activar este módulo. | | `detect_files` | `[]` | Qué nombres de archivo deberían activar este módulo. | | `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | -| `style` | `"bold blue"` | El estilo del módulo. | +| `style` | `'bold blue'` | El estilo del módulo. | | `disabled` | `false` | Disables this module. | ### Variables @@ -3857,7 +4001,7 @@ disabled = false ``` ```toml -# En Windows +# On windows # $HOME\.starship\config.toml [sudo] @@ -3901,7 +4045,7 @@ Por defecto, el módulo `swift` muestra la versión instalada de [Swift](https:/ # ~/.config/starship.toml [swift] -format = 'via [🏎 $version](red bold)' +format = 'vía [🏎 $version](red bold)' ``` ## Terraform @@ -3945,7 +4089,7 @@ Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes ### Ejemplo -#### Con la versión de Terraform +#### Con Terraform Version ```toml # ~/.config/starship.toml @@ -3954,7 +4098,7 @@ Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes format = '[🏎💨 $version$workspace]($style) ' ``` -#### Sin la versión de Terraform +#### Sin Terraform Version ```toml # ~/.config/starship.toml @@ -4009,6 +4153,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes condiciones: + +- El directorio actual contiene un archivo `template.typ` +- The current directory contains any `*.typ` file + +### Opciones + +| Opción | Predeterminado | Descripción | +| ------------------- | ------------------------------------ | --------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | El formato del módulo. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | El estilo del módulo. | +| `detect_extensions` | `['.typ']` | Qué extensiones deberían activar este módulo. | +| `detect_files` | `['template.typ']` | Qué nombres de archivo deberían activar este módulo. | +| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | +| `disabled` | `false` | Deshabilita el módulo `daml`. | + +### Variables + +| Variable | Ejemplo | Descripción | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Refleja el valor de la opción `symbol` | +| style\* | | Refleja el valor de la opción `style` | + +*: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo + ## Username El módulo `username` muestra el nombre de usuario activo. El módulo se mostrará si se cumplen alguna de las siguientes condiciones: @@ -4283,7 +4460,7 @@ Si no se da el `shell` o solo contiene un elemento y Starship detecta PowerShell shell = ['pwsh', '-Command', '-'] ``` -::: warning Asegúrate de que tu configuración personalizada de shell salga con éxito +::: warning Asegúrate de que tu configuración personalizada del intérprete de comandos salga con éxito Si estableces un comando personalizado, asegúrate de que el intérprete de comandos por defecto usado por Starship ejecutará correctamente el comando con una salida elegante (a través de la opción `shell`). diff --git a/docs/es-ES/guide/README.md b/docs/es-ES/guide/README.md index 64c516b1..055832e2 100644 --- a/docs/es-ES/guide/README.md +++ b/docs/es-ES/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Sigue a @StarshipPrompt en Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/es-ES/presets/README.md b/docs/es-ES/presets/README.md index ad7a0c0c..3a6e96f1 100644 --- a/docs/es-ES/presets/README.md +++ b/docs/es-ES/presets/README.md @@ -60,6 +60,12 @@ Este preajuste está inspirado en [M365Princess](https://github.com/JanDeDobbele ## [Tokyo Night](./tokyo-night.md) -This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +Este preset está inspirado en [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). -[![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) +[![Captura del preset de Tokyo Night](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +Este preajuste está muy inspirado en [Pastel Powerline](./pastel-powerline.md) y [Tokyo Night](./tokyo-night.md). + +[![Captura de pantalla de el preajuste Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Clic para ver el preajuste Gruvbox Rainbow")](./gruvbox-rainbow) diff --git a/docs/es-ES/presets/gruvbox-rainbow.md b/docs/es-ES/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..9999e353 --- /dev/null +++ b/docs/es-ES/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Volver a Preajustes](./README.md#gruvbox-rainbow) + +# Preselección Gruvbox Rainbow + +Este preajuste está muy inspirado en [Pastel Powerline](./pastel-powerline.md) y [Tokyo Night](./tokyo-night.md). + +![Captura de pantalla del preajuste Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png) + +### Prerequisitos + +- Una [Nerd Font](https://www.nerdfonts.com/) instalada y habilitada en tu terminal + +### Configuración + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Clic para descargar TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/es-ES/presets/jetpack.md b/docs/es-ES/presets/jetpack.md new file mode 100644 index 00000000..00381b80 --- /dev/null +++ b/docs/es-ES/presets/jetpack.md @@ -0,0 +1,24 @@ +[Volver a Preajustes](./README.md#jetpack) + +# Preajust Jetpack + +Este es un preajuste pseudominimalista inspirado en las indicaciones [geometría](https://github.com/geometry-zsh/geometry) y [nave espacial](https://github.com/spaceship-prompt/spaceship-prompt). + +> Jetpack utiliza los colores temáticos de la terminal. + +![Captura de pantalla del preajuste Jetpack](/presets/img/jetpack.png) + +### Prerrequisito + +- Requiere un comando con [`la indicación correcta`](https://starship.rs/advanced-config/#enable-right-prompt). +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) es recomendado. + +### Configuración + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Clic para descargar TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/es-ES/presets/no-empty-icons.md b/docs/es-ES/presets/no-empty-icons.md index b1af843f..d6521cd4 100644 --- a/docs/es-ES/presets/no-empty-icons.md +++ b/docs/es-ES/presets/no-empty-icons.md @@ -1,8 +1,8 @@ -[Volver a Preajustes](./README.md#no-empty-icons) +[Volver a las preselecciones](./README.md#no-empty-icons) -# No Empty Icons Preset +# Preselección de iconos no vacíos -If toolset files are identified the toolset icon is displayed. If the toolset is not found to determine its version number, it is not displayed. This preset changes the behavior to display the icon only if the toolset information can be determined. +Si se identifican archivos del conjunto de herramientas, entonces se mostrara el ícono del conjunto de herramientas. If the toolset is not found to determine its version number, it is not displayed. La forma en la que se muestra el ícono depende de si la información del conjunto de herramientas puede ser determinada. ![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png) diff --git a/docs/es-ES/presets/no-nerd-font.md b/docs/es-ES/presets/no-nerd-font.md index f06a5d85..4de7d4d2 100644 --- a/docs/es-ES/presets/no-nerd-font.md +++ b/docs/es-ES/presets/no-nerd-font.md @@ -6,7 +6,7 @@ This preset restricts the use of symbols to those from emoji and powerline sets. Esto significa que incluso sin una fuente Nerd instalada, debería ser capaz de ver todos los símbolos del módulo. -This preset will become the default preset in a future release of starship. +Este preset será el predeterminado en una futura versión de starship. ### Configuración diff --git a/docs/es-ES/presets/tokyo-night.md b/docs/es-ES/presets/tokyo-night.md index 95af84ea..6218d6b0 100644 --- a/docs/es-ES/presets/tokyo-night.md +++ b/docs/es-ES/presets/tokyo-night.md @@ -2,11 +2,11 @@ # Tokyo Night Preset -This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +Este preset está inspirado en [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). -![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png) +![Captura del preset de Tokyo Night](/presets/img/tokyo-night.png) -### Prerequisitos +### Prerrequisitos - Una [Nerd Font](https://www.nerdfonts.com/) instalada y habilitada en tu terminal diff --git a/docs/fr-FR/config/README.md b/docs/fr-FR/config/README.md index 8ea28092..b31a0ed1 100644 --- a/docs/fr-FR/config/README.md +++ b/docs/fr-FR/config/README.md @@ -206,6 +206,13 @@ Voici la liste des options de configuration globales de l'invite de commandes. | `add_newline` | `true` | Insère une ligne vide entre les invites du shell. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Exemple @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ Lorsque vous utilisez [AWSume](https://awsu.me) le profil est lu à partir de la When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Défaut | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Tableau des alias de région à afficher en plus du nom AWS. | | `profile_aliases` | `{}` | Tableau des alias de profil à afficher en plus du nom AWS. | | `style` | `'bold yellow'` | Le style pour le module. | -| `expiration_symbol` | `X` | Le symbole est affiché lorsque les identifiants temporaires ont expiré. | +| `expiration_symbol` | `'X'` | Le symbole est affiché lorsque les identifiants temporaires ont expiré. | | `disabled` | `false` | Désactive le module `AWS`. | | `force_display` | `false` | Si `true`, affiche les informations même si `credentials`, `credential_process` ou `sso_start_url` n'ont pas été configurées. | @@ -620,17 +632,17 @@ Le module `c` affiche des informations à propos de votre compilateur C. Par dé ### Options -| Option | Défaut | Description | -| ------------------------------------ | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | La chaîne de format pour le module. | -| `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | -| `symbole` | `'C '` | Le symbole utilisé avant d’afficher les détails du compilateur | -| `detect_extensionsdetect_extensions` | `['c', 'h']` | Les extensions qui déclenchent ce module. | -| `detect_files` | `[]` | Les fichiers qui activent ce module. | -| `detect_folders` | `[]` | Les dossiers qui activent ce module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | Comment détecter quel est le compilateur | -| `style` | `'bold 149'` | Le style pour le module. | -| `disabled` | `false` | Désactive le module `c`. | +| Option | Défaut | Description | +| ------------------------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | La chaîne de format pour le module. | +| `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | +| `symbole` | `'C '` | Le symbole utilisé avant d’afficher les détails du compilateur | +| `detect_extensionsdetect_extensions` | `['c', 'h']` | Les extensions qui déclenchent ce module. | +| `detect_files` | `[]` | Les fichiers qui activent ce module. | +| `detect_folders` | `[]` | Les dossiers qui activent ce module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | Comment détecter quel est le compilateur | +| `style` | `'bold 149'` | Le style pour le module. | +| `disabled` | `false` | Désactive le module `c`. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Défaut | Description | +| ------------------------------------ | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | Format du module. | +| `symbole` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | Le style pour le module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensionsdetect_extensions` | `[]` | Les extensions qui déclenchent ce module. | +| `detect_files` | `['.envrc']` | Les fichiers qui activent ce module. | +| `detect_folders` | `[]` | Les dossiers qui activent ce module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Exemple | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbole | | Reflète la valeur de l'option `symbol`. | +| style\* | `red bold` | Reflète la valeur de l'option `style`. | + +*: Cette variable peut uniquement être utilisée dans une chaine de style + +### Exemple + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Contexte Docker Le module `docker_context` affiche le [context Docker](https://docs.docker.com/engine/context/working-with-contexts/) actif, si sa valeur est différente de `default` ou si les variables d’environnement `DOCKER_MACHINE_NAME`, `DOCKER_HOST` ou `DOCKER_CONTEXT` sont définies (puisqu’elles sont utilisées pour changer le contexte utilisé). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | | `symbole` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | Le style pour le module. | -| `detect_extensionsdetect_extensions` | `[fnl]` | Les extensions qui déclenchent ce module. | +| `detect_extensionsdetect_extensions` | `['fnl']` | Les extensions qui déclenchent ce module. | | `detect_files` | `[]` | Les fichiers qui activent ce module. | | `detect_folders` | `[]` | Quels dossiers devraient activer ce module. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Défaut | Description | +| -------------------- | ------------------------------------------------------------ | ----------------------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | Format du module. | +| `added_style` | `'bold green'` | Le style pour le compte des ajouts. | +| `deleted_style` | `'bold red'` | Le style pour le compte des suppressions. | +| `only_nonzero_diffs` | `true` | Afficher le statut seulement pour les items modifiés. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Exemple | Description | +| ----------------- | ------- | --------------------------------------------- | +| added | `1` | Le nombre de lignes ajoutées | +| deleted | `2` | Le nombre de lignes supprimées | +| added_style\* | | Possède la valeur de l’option `added_style` | +| deleted_style\* | | Possède la valeur de l’option `deleted_style` | + +*: Cette variable peut uniquement être utilisée dans une chaine de style + +### Exemple + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) Le module `gcloud` affiche la version de la commande [`gcloud`](https://cloud.google.com/sdk/gcloud) installée. Ceci est basé sur les fichiers `~/.config/gcloud/active_config` et `~/.config/gcloud/configurations/config_{CONFIG NAME}` et la variable d'environnement `CLOUDSDK_CONFIG`. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Défaut | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | Format du module. | -| `symbole` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | Le style pour le module. | +| `symbole` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | Le style pour le module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Défaut | Description | | ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------ | -| `format` | `"via [$symbol($version )]($style)"` | Format du module. | -| `version_format` | `"v${raw}"` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | -| `symbole` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensionsdetect_extensions` | `["gradle", "gradle.kts"]` | Les extensions qui déclenchent ce module. | +| `format` | `'via [$symbol($version )]($style)'` | Format du module. | +| `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | +| `symbole` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensionsdetect_extensions` | `['gradle', 'gradle.kts']` | Les extensions qui déclenchent ce module. | | `detect_files` | `[]` | Les fichiers qui activent ce module. | -| `detect_folders` | `["gradle"]` | Les dossiers qui activent ce module. | -| `style` | `"bold bright-cyan"` | Le style pour le module. | +| `detect_folders` | `['gradle']` | Les dossiers qui activent ce module. | +| `style` | `'bold bright-cyan'` | Le style pour le module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Défaut | Description | | ------------------------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | -| `format` | `"via [$symbol($version )]($style)"` | Format du module. | -| `version_format` | `"v${raw}"` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | -| `detect_extensionsdetect_extensions` | `["hx", "hxml"]` | Les extensions qui déclenchent ce module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Les fichiers qui activent ce module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Quels dossiers devraient activer ce module. | -| `symbole` | `"⌘ "` | Une chaîne de format représentant le symbole de Helm. | -| `style` | `"bold fg:202"` | Le style pour le module. | +| `format` | `'via [$symbol($version )]($style)'` | Format du module. | +| `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | +| `detect_extensionsdetect_extensions` | `['hx', 'hxml']` | Les extensions qui déclenchent ce module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Les fichiers qui activent ce module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Quels dossiers devraient activer ce module. | +| `symbole` | `'⌘ '` | Une chaîne de format représentant le symbole de Helm. | +| `style` | `'bold fg:202'` | Le style pour le module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ Le module `hostname` affiche le nom d’hôte du système system. ### Options -| Option | Défaut | Description | -| ------------ | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | Afficher uniquement le nom d'hôte lorsque vous êtes connecté à une session SSH. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | Chaîne à laquelle le nom d'hôte est coupé, après la première correspondance. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | Format du module. | -| `style` | `'bold dimmed green'` | Le style pour le module. | -| `disabled` | `false` | Désactive le module `hostname`. | +| Option | Défaut | Description | +| ----------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Afficher uniquement le nom d'hôte lorsque vous êtes connecté à une session SSH. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | Chaîne à laquelle le nom d'hôte est coupé, après la première correspondance. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | Format du module. | +| `style` | `'bold dimmed green'` | Le style pour le module. | +| `disabled` | `false` | Désactive le module `hostname`. | ### Variables @@ -2126,7 +2215,9 @@ Le module `hostname` affiche le nom d’hôte du système system. *: Cette variable peut uniquement être utilisée dans une chaine de style -### Exemple +### Exemples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java Le module `java` affiche la version de [Java](https://www.oracle.com/java/) installée. Par défaut, le module sera affiché si l’une de ces conditions est remplie: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Afficher le nom du [contexte Kubernetes](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) courant, et, si défini, l’espace de nom, l’utilisateur, et le cluster depuis le fichier kubeconfig. L'espace de noms doit être défini dans le fichier kubeconfig, ce qui peut être fait via `kubectl config set-context starship-cluster --namespace astronaut`. De même, l'utilisateur et l'instance peuvent être définies avec `kubectl config set-context starship-context --user starship-user` et `kubectl config set-context starship-context --cluster starship-cluster`. Si la variable d'environnement `$KUBECONFIG` est définie, le module l'utilisera, sinon il utilisera le fichier `~/.kube/config`. +Afficher le nom du [contexte Kubernetes](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) courant, et, si défini, l’espace de nom, l’utilisateur, et le cluster depuis le fichier kubeconfig. L'espace de noms doit être défini dans le fichier kubeconfig, ce qui peut être fait via `kubectl config set-context starship-cluster --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. Si la variable d'environnement `$KUBECONFIG` est définie, le module l'utilisera, sinon il utilisera le fichier `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Défaut | Description | | ------------------------------------ | ---------------------------------------------------- | ---------------------------------------------------------------------- | | `symbole` | `'☸ '` | Une chaîne de format représentant le symbole affiché avant le Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | Format du module. | | `style` | `'cyan bold'` | Le style pour le module. | -| `context_aliases` | `{}` | Tableau des alias de contexte à afficher. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Tableau des alias de contexte à afficher. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensionsdetect_extensions` | `[]` | Les extensions qui déclenchent ce module. | | `detect_files` | `[]` | Les fichiers qui activent ce module. | | `detect_folders` | `[]` | Quels dossiers devraient activer ce module. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Désactiver le module `kubernetes`. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbole` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Exemple | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Filtrage par regex +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -L’expression rationnelle doit correspondre au contexte kube entier, et des groupes de capture peuvent être référencés en utilisant `$name` et `$N` dans la valeur de remplacement. Ceci est expliqué plus en détails dans la documentation de [la crate regex](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace). - -Les noms de cluster long ou générés automatiquement peuvent être identifiés et raccourcis en utilisant des expressions rationnelles: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Saut de ligne @@ -2730,7 +2861,7 @@ Le module `nodejs` affiche la version de [Node.js](https://nodejs.org/) install | `detect_folders` | `['node_modules']` | Les dossiers qui activent ce module. | | `style` | `'bold green'` | Le style pour le module. | | `disabled` | `false` | Désactive le module `nodejs`. | -| `not_capable_style` | `bold red` | Le style du module quand une propriété engines dans le package.json ne correspond pas à la version Node.js. | +| `not_capable_style` | `'bold red'` | Le style du module quand une propriété engines dans le package.json ne correspond pas à la version Node.js. | ### Variables @@ -2890,8 +3021,8 @@ Ce module est désactivé par défaut. Pour l'activer, configurez `disabled` sur | Option | Défaut | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | Format du module. | -| `style` | `"bold white"` | Le style pour le module. | +| `format` | `'[$symbol]($style)'` | Format du module. | +| `style` | `'bold white'` | Le style pour le module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ Par défaut, le module sera affiché si l’une de ces conditions est remplie: | `symbole` | `'🐍 '` | Une chaîne de caractères représentant le symbole de Python | | `style` | `'yellow bold'` | Le style pour le module. | | `pyenv_version_name` | `false` | Utiliser pyenv pour obtenir la version de Python | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensionsdetect_extensions` | `['py']` | Les extensions qui déclenchent ce module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Quels fichiers devraient activer ce module | @@ -3563,22 +3694,23 @@ Ce module est désactivé par défaut. Pour l'activer, configurez `disabled` sur ### Options -| Option | Défaut | Description | -| ---------------------- | ------------------------- | ----------------------------------------------------------- | -| `bash_indicator` | `'bsh'` | Chaine de formatage utilisée pour représenter bash. | -| `fish_indicator` | `'fsh'` | Chaine de formatage utilisée pour représenter fish. | -| `zsh_indicator` | `'zsh'` | Chaine de formatage utilisée pour représenter zsh. | -| `powershell_indicator` | `'psh'` | Chaine de formatage utilisée pour représenter powershell. | -| `ion_indicator` | `'ion'` | Chaine de formatage utilisée pour représenter ion. | -| `elvish_indicator` | `'esh'` | Chaine de formatage utilisée pour représenter elvish. | -| `tcsh_indicator` | `'tsh'` | Chaine de formatage utilisée pour représenter tcsh. | -| `xonsh_indicator` | `'xsh'` | Chaine de formatage utilisée pour représenter xonsh. | -| `cmd_indicator` | `'cmd'` | Chaine de formatage utilisée pour représenter cmd. | -| `nu_indicator` | `'nu'` | Chaine de formatage utilisée pour représenter nu. | -| `unknown_indicator` | `''` | La valeur par défaut à afficher quand le shell est inconnu. | -| `format` | `'[$indicator]($style) '` | Format du module. | -| `style` | `'white bold'` | Le style pour le module. | -| `disabled` | `true` | Désactive le module `shell`. | +| Option | Défaut | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | Chaine de formatage utilisée pour représenter bash. | +| `fish_indicator` | `'fsh'` | Chaine de formatage utilisée pour représenter fish. | +| `zsh_indicator` | `'zsh'` | Chaine de formatage utilisée pour représenter zsh. | +| `powershell_indicator` | `'psh'` | Chaine de formatage utilisée pour représenter powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | Chaine de formatage utilisée pour représenter ion. | +| `elvish_indicator` | `'esh'` | Chaine de formatage utilisée pour représenter elvish. | +| `tcsh_indicator` | `'tsh'` | Chaine de formatage utilisée pour représenter tcsh. | +| `xonsh_indicator` | `'xsh'` | Chaine de formatage utilisée pour représenter xonsh. | +| `cmd_indicator` | `'cmd'` | Chaine de formatage utilisée pour représenter cmd. | +| `nu_indicator` | `'nu'` | Chaine de formatage utilisée pour représenter nu. | +| `unknown_indicator` | `''` | La valeur par défaut à afficher quand le shell est inconnu. | +| `format` | `'[$indicator]($style) '` | Format du module. | +| `style` | `'white bold'` | Le style pour le module. | +| `disabled` | `true` | Désactive le module `shell`. | ### Variables @@ -3695,14 +3827,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Défaut | Description | | ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------ | -| `format` | `"via [$symbol($version )]($style)"` | Format du module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | -| `symbole` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensionsdetect_extensions` | `["sol"]` | Les extensions qui déclenchent ce module. | +| `format` | `'via [$symbol($version )]($style)'` | Format du module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | +| `symbole` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensionsdetect_extensions` | `['sol']` | Les extensions qui déclenchent ce module. | | `detect_files` | `[]` | Les fichiers qui activent ce module. | | `detect_folders` | `[]` | Les dossiers qui activent ce module. | -| `style` | `"bold blue"` | Le style pour le module. | +| `style` | `'bold blue'` | Le style pour le module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4010,6 +4142,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +Par défaut, le module sera affiché si l’une de ces conditions est remplie: + +- Le dossier courant contient un fichier `template.typ` +- The current directory contains any `*.typ` file + +### Options + +| Option | Défaut | Description | +| ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | Format du module. | +| `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | +| `symbole` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | Le style pour le module. | +| `detect_extensionsdetect_extensions` | `['.typ']` | Les extensions qui déclenchent ce module. | +| `detect_files` | `['template.typ']` | Les fichiers qui activent ce module. | +| `detect_folders` | `[]` | Les dossiers qui activent ce module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Exemple | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbole | | Reflète la valeur de l'option `symbol` | +| style\* | | Reflète la valeur de l'option `style` | + +*: Cette variable peut uniquement être utilisée dans une chaine de style + ## Nom d'utilisateur Le module `username` affiche le nom de l’utilisateur actif. Le module sera affiché si l'une de ces conditions est remplie: diff --git a/docs/fr-FR/guide/README.md b/docs/fr-FR/guide/README.md index 630645be..781d03bd 100644 --- a/docs/fr-FR/guide/README.md +++ b/docs/fr-FR/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Suivez @StarshipPrompt sur Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![Bannière StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

@@ -277,7 +281,7 @@ Configurez votre shell pour initialiser starship. Sélectionnez le vôtre dans l
Bash -Ajoutez ce qui suit à la fin de `~/.bashrc`: +Ajouter ce qui suit à la fin de `~/.bashrc`: ```sh eval "$(starship init bash)" @@ -312,7 +316,7 @@ Note: Seul Elvish v0.18+ est supporté
Fish -Ajoutez le code suivant à la fin de `~/.config/fish/config.fish`: +Ajoute ce qui suit à la fin de `~/.config/fish/config.fish`: ```fish starship init fish | source @@ -323,7 +327,7 @@ starship init fish | source
Ion -Ajoutez ce qui suit à la fin de `~/.config/ion/initrc`: +Ajouter ce qui suit à la fin de `~/.config/ion/initrc`: ```sh eval $(starship init ion) @@ -387,7 +391,7 @@ execx($(starship init xonsh))
Zsh -Ajoutez ce qui suit à la fin de `~/.zshrc`: +Ajouter ce qui suit à la fin de `~/.zshrc`: ```sh eval "$(starship init zsh)" diff --git a/docs/fr-FR/presets/README.md b/docs/fr-FR/presets/README.md index efcf8061..11b18e52 100644 --- a/docs/fr-FR/presets/README.md +++ b/docs/fr-FR/presets/README.md @@ -63,3 +63,9 @@ Ce préréglage s'inspire de [M365Princess](https://github.com/JanDeDobbeleer/oh This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/fr-FR/presets/gruvbox-rainbow.md b/docs/fr-FR/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..1ea4af7f --- /dev/null +++ b/docs/fr-FR/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Retourner aux préréglages](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Pré-requis + +- Une [Nerd Font](https://www.nerdfonts.com/) est installée et activée dans votre terminal + +### Configuration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Cliquez pour télécharger le TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/fr-FR/presets/jetpack.md b/docs/fr-FR/presets/jetpack.md new file mode 100644 index 00000000..930d974e --- /dev/null +++ b/docs/fr-FR/presets/jetpack.md @@ -0,0 +1,24 @@ +[Retourner aux préréglages](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Cliquez pour télécharger le TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/id-ID/config/README.md b/docs/id-ID/config/README.md index ed2b8180..7fa086e0 100644 --- a/docs/id-ID/config/README.md +++ b/docs/id-ID/config/README.md @@ -206,6 +206,13 @@ Berikut adalah opsi konfigurasi dari list yang bersifat prompt-wide. | `add_newline` | `true` | Memasukkan baris kosong antara prompt shell. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Contoh @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ Ketika menggunakan [AWSume](https://awsu.me) profil dibaca dari variabel environ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Opsi | Opsi | Bawaan | Deskripsi | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Tabel alias dari region yang ditampilan selain nama AWS. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | Gaya penataan untuk modul. | -| `expiration_symbol` | `X` | Simbol ditampilkan ketika temporer kredensial telah kedaluwarsa. | +| `expiration_symbol` | `'X'` | Simbol ditampilkan ketika temporer kredensial telah kedaluwarsa. | | `disabled` | `false` | Menonaktifkan modul `AWS`. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Opsi -| Opsi | Bawaan | Deskripsi | -| ------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Ekstensi mana yang sebaiknya memicu modul ini. | -| `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. | -| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | Gaya penataan untuk modul. | -| `disabled` | `false` | Disables the `c` module. | +| Opsi | Bawaan | Deskripsi | +| ------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. | +| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | Gaya penataan untuk modul. | +| `disabled` | `false` | Disables the `c` module. | ### Variabel @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Opsi + +| Opsi | Bawaan | Deskripsi | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | Format dari modul. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | Gaya penataan untuk modul. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `detect_files` | `['.envrc']` | filenames mana yang sebaiknya memicu modul ini. | +| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variabel + +| Variabel | Contoh | Deskripsi | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Menyalin nilai dari opsi `symbol`. | +| style\* | `red bold` | Menyalin nilai dari opsi `style`. | + +*: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string + +### Contoh + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1393,7 +1446,7 @@ The `erlang` module shows the currently installed version of [Erlang/OTP](https: | Opsi | Bawaan | Deskripsi | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `' '` | The symbol used before displaying the version of erlang. | | `style` | `'bold red'` | Gaya penataan untuk modul. | @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | Gaya penataan untuk modul. | -| `detect_extensions` | `[fnl]` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `detect_extensions` | `['fnl']` | Ekstensi mana yang sebaiknya memicu modul ini. | | `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. | | `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Opsi + +| Opsi | Bawaan | Deskripsi | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `fromat` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | Format dari modul. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variabel + +| Variabel | Contoh | Deskripsi | +| ----------------- | ------ | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string + +### Contoh + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Opsi @@ -1775,7 +1863,7 @@ The Git Status module is very slow in Windows directories (for example under `/m | Opsi | Bawaan | Deskripsi | | ------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| `fromat` | `'([\[$all_status$ahead_behind\]]($style) )'` | The default format for `git_status` | +| `format` | `'([\[$all_status$ahead_behind\]]($style) )'` | The default format for `git_status` | | `conflicted` | `'='` | This branch has merge conflicts. | | `ahead` | `'⇡'` | The format of `ahead` | | `behind` | `'⇣'` | The format of `behind` | @@ -1930,9 +2018,9 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Opsi | Bawaan | Deskripsi | | ---------- | -------------------------- | ------------------------------------------------------ | -| `format` | `'via [$symbol]($style) '` | Format dari modul. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | Gaya penataan untuk modul. | +| `fromat` | `'via [$symbol]($style) '` | Format dari modul. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | Gaya penataan untuk modul. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variabel @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Opsi | Bawaan | Deskripsi | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Format dari modul. | -| `version_format` | `"v${raw}"` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Ekstensi mana yang sebaiknya memicu modul ini. | | `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. | -| `detect_folders` | `["gradle"]` | Folder mana yang sebaiknya memicul modul ini. | -| `style` | `"bold bright-cyan"` | Gaya penataan untuk modul. | +| `detect_folders` | `['gradle']` | Folder mana yang sebaiknya memicul modul ini. | +| `style` | `'bold bright-cyan'` | Gaya penataan untuk modul. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Opsi | Bawaan | Deskripsi | | ------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `fromat` | `"via [$symbol($version )]($style)"` | Format dari modul. | -| `version_format` | `"v${raw}"` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Ekstensi mana yang sebaiknya memicu modul ini. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | filenames mana yang sebaiknya memicu modul ini. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Folder mana yang sebaiknya memicul modul ini. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | Gaya penataan untuk modul. | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | filenames mana yang sebaiknya memicu modul ini. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Folder mana yang sebaiknya memicul modul ini. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | Gaya penataan untuk modul. | | `disabled` | `false` | Disables the `haxe` module. | ### Variabel @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Opsi -| Opsi | Bawaan | Deskripsi | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `fromat` | `'[$ssh_symbol$hostname]($style) in '` | Format dari modul. | -| `style` | `'bold dimmed green'` | Gaya penataan untuk modul. | -| `disabled` | `false` | Disables the `hostname` module. | +| Opsi | Bawaan | Deskripsi | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `fromat` | `'[$ssh_symbol$hostname]($style) in '` | Format dari modul. | +| `style` | `'bold dimmed green'` | Gaya penataan untuk modul. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variabel @@ -2128,6 +2217,8 @@ The `hostname` module shows the system hostname. ### Contoh +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Opsi +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Opsi | Bawaan | Deskripsi | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `fromat` | `'[$symbol$context( \($namespace\))]($style) in '` | Format dari modul. | | `style` | `'cyan bold'` | Gaya penataan untuk modul. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Ekstensi mana yang sebaiknya memicu modul ini. | | `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. | | `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variabel | Deskripsi | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variabel | Variabel | Contoh | Deskripsi | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2637,7 +2768,7 @@ The `nim` module shows the currently installed version of [Nim](https://nim-lang | Opsi | Bawaan | Deskripsi | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | Format dari modul | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `'👑 '` | The symbol used before displaying the version of Nim. | | `detect_extensions` | `['nim', 'nims', 'nimble']` | Ekstensi mana yang sebaiknya memicu modul ini. | @@ -2674,7 +2805,7 @@ The `nix_shell` module shows the [nix-shell](https://nixos.org/guides/nix-pills/ | Opsi | Bawaan | Deskripsi | | ------------- | ---------------------------------------------- | --------------------------------------------------------------------- | -| `format` | `'via [$symbol$state( \($name\))]($style) '` | Format dari modul. | +| `fromat` | `'via [$symbol$state( \($name\))]($style) '` | Format dari modul. | | `symbol` | `'❄️ '` | A format string representing the symbol of nix-shell. | | `style` | `'bold blue'` | Gaya penataan untuk modul. | | `impure_msg` | `'impure'` | A format string shown when the shell is impure. | @@ -2722,7 +2853,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | Opsi | Bawaan | Deskripsi | | ------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `' '` | A format string representing the symbol of Node.js. | | `detect_extensions` | `['js', 'mjs', 'cjs', 'ts', 'mts', 'cts']` | Ekstensi mana yang sebaiknya memicu modul ini. | @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Folder mana yang sebaiknya memicul modul ini. | | `style` | `'bold green'` | Gaya penataan untuk modul. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variabel @@ -2767,7 +2898,7 @@ The `ocaml` module shows the currently installed version of [OCaml](https://ocam | Opsi | Bawaan | Deskripsi | | ------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )(\($switch_indicator$switch_name\) )]($style)'` | The format string for the module. | +| `fromat` | `'via [$symbol($version )(\($switch_indicator$switch_name\) )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🐫 '` | The symbol used before displaying the version of OCaml. | | `global_switch_indicator` | `''` | The format string used to represent global OPAM switch. | @@ -2807,7 +2938,7 @@ The `opa` module shows the currently installed version of the OPA tool. By defau | Opsi | Bawaan | Deskripsi | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🪖 '` | A format string representing the symbol of OPA. | | `detect_extensions` | `['rego']` | Ekstensi mana yang sebaiknya memicu modul ini. | @@ -2843,7 +2974,7 @@ The `openstack` module shows the current OpenStack cloud and project. The module | Opsi | Bawaan | Deskripsi | | ---------- | ----------------------------------------------- | -------------------------------------------------------------- | -| `format` | `'on [$symbol$cloud(\($project\))]($style) '` | Format dari modul. | +| `fromat` | `'on [$symbol$cloud(\($project\))]($style) '` | Format dari modul. | | `symbol` | `'☁️ '` | The symbol used before displaying the current OpenStack cloud. | | `style` | `'bold yellow'` | Gaya penataan untuk modul. | | `disabled` | `false` | Disables the `openstack` module. | @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Opsi | Bawaan | Deskripsi | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | Format dari modul. | -| `style` | `"bold white"` | Gaya penataan untuk modul. | +| `fromat` | `'[$symbol]($style)'` | Format dari modul. | +| `style` | `'bold white'` | Gaya penataan untuk modul. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3000,7 +3131,7 @@ The `package` module is shown when the current directory is the repository for a | Opsi | Bawaan | Deskripsi | | ----------------- | --------------------------------- | ----------------------------------------------------------------------------------- | -| `format` | `'is [$symbol$version]($style) '` | Format dari modul. | +| `fromat` | `'is [$symbol$version]($style) '` | Format dari modul. | | `symbol` | `'📦 '` | The symbol used before displaying the version the package. | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `style` | `'bold 208'` | Gaya penataan untuk modul. | @@ -3040,7 +3171,7 @@ The `perl` module shows the currently installed version of [Perl](https://www.pe | Opsi | Bawaan | Deskripsi | | ------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | The format string for the module. | +| `fromat` | `'via [$symbol($version )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🐪 '` | The symbol used before displaying the version of Perl | | `detect_extensions` | `['pl', 'pm', 'pod']` | Ekstensi mana yang sebaiknya memicu modul ini. | @@ -3245,7 +3376,7 @@ Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | Gaya penataan untuk modul. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Ekstensi mana yang sebaiknya memicu modul ini | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | filenames mana yang sebaiknya memicu modul ini | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Opsi -| Opsi | Bawaan | Deskripsi | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `fromat` | `'[$indicator]($style) '` | Format dari modul. | -| `style` | `'white bold'` | Gaya penataan untuk modul. | -| `disabled` | `true` | Disables the `shell` module. | +| Opsi | Bawaan | Deskripsi | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `fromat` | `'[$indicator]($style) '` | Format dari modul. | +| `style` | `'white bold'` | Gaya penataan untuk modul. | +| `disabled` | `true` | Disables the `shell` module. | ### Variabel @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Opsi | Bawaan | Deskripsi | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `fromat` | `"via [$symbol($version )]($style)"` | Format dari modul. | -| `version_format` | `"v${major}.${minor}.${patch}"` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `version_format` | `'v${major}.${minor}.${patch}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Ekstensi mana yang sebaiknya memicu modul ini. | | `detect_files` | `[]` | filenames mana yang sebaiknya memicu modul ini. | | `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | -| `style` | `"bold blue"` | Gaya penataan untuk modul. | +| `style` | `'bold blue'` | Gaya penataan untuk modul. | | `disabled` | `false` | Disables this module. | ### Variabel @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- Direktori ini memiliki berkas `template.typ` +- The current directory contains any `*.typ` file + +### Opsi + +| Opsi | Bawaan | Deskripsi | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | Gaya penataan untuk modul. | +| `detect_extensions` | `['.typ']` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `detect_files` | `['template.typ']` | filenames mana yang sebaiknya memicu modul ini. | +| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variabel + +| Variabel | Contoh | Deskripsi | +| ------------- | -------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `bawaan` | The current Typst version | +| symbol | | Menyalin nilai dari opsi `symbol` | +| style\* | | Menyalin nilai dari opsi `style` | + +*: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/id-ID/guide/README.md b/docs/id-ID/guide/README.md index 48cfe869..28776608 100644 --- a/docs/id-ID/guide/README.md +++ b/docs/id-ID/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Ikuti @StarshipPrompt di Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/id-ID/presets/README.md b/docs/id-ID/presets/README.md index ac15b0b0..29c180d1 100644 --- a/docs/id-ID/presets/README.md +++ b/docs/id-ID/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/id-ID/presets/gruvbox-rainbow.md b/docs/id-ID/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..9208142e --- /dev/null +++ b/docs/id-ID/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Prasyarat + +- [Nerd Font](https://www.nerdfonts.com/) yang sudah terpasang dan berjalan di dalam terminalmu + +### Konfigurasi + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/id-ID/presets/jetpack.md b/docs/id-ID/presets/jetpack.md new file mode 100644 index 00000000..58dde840 --- /dev/null +++ b/docs/id-ID/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Konfigurasi + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/it-IT/config/README.md b/docs/it-IT/config/README.md index 1b7ff22d..420fedd5 100644 --- a/docs/it-IT/config/README.md +++ b/docs/it-IT/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserisce una riga vuota tra i prompt della shell. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Esempio @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Opzioni | Opzione | Default | Descrizione | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | Lo stile per il modulo. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Opzioni -| Opzione | Default | Descrizione | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Quali estensioni dovrebbero attivare questo modulo. | -| `detect_files` | `[]` | Quali nomi di file dovrebbero attivare questo modulo. | -| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | Lo stile per il modulo. | -| `disabled` | `false` | Disables the `c` module. | +| Opzione | Default | Descrizione | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_files` | `[]` | Quali nomi di file dovrebbero attivare questo modulo. | +| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | Lo stile per il modulo. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Opzioni + +| Opzione | Default | Descrizione | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | Lo stile per il modulo. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_files` | `['.envrc']` | Quali nomi di file dovrebbero attivare questo modulo. | +| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Esempio | Descrizione | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Esempio + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | Lo stile per il modulo. | -| `detect_extensions` | `[fnl]` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_extensions` | `['fnl']` | Quali estensioni dovrebbero attivare questo modulo. | | `detect_files` | `[]` | Quali nomi di file dovrebbero attivare questo modulo. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Opzioni + +| Opzione | Default | Descrizione | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Esempio | Descrizione | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Esempio + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Opzioni @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Opzione | Default | Descrizione | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | Lo stile per il modulo. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | Lo stile per il modulo. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Opzione | Default | Descrizione | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Quali estensioni dovrebbero attivare questo modulo. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Quali estensioni dovrebbero attivare questo modulo. | | `detect_files` | `[]` | Quali nomi di file dovrebbero attivare questo modulo. | -| `detect_folders` | `["gradle"]` | Quali cartelle dovrebbero attivare questo modulo. | -| `style` | `"bold bright-cyan"` | Lo stile per il modulo. | +| `detect_folders` | `['gradle']` | Quali cartelle dovrebbero attivare questo modulo. | +| `style` | `'bold bright-cyan'` | Lo stile per il modulo. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Opzione | Default | Descrizione | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Quali estensioni dovrebbero attivare questo modulo. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Quali nomi di file dovrebbero attivare questo modulo. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | Lo stile per il modulo. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Quali nomi di file dovrebbero attivare questo modulo. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | Lo stile per il modulo. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Opzioni -| Opzione | Default | Descrizione | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | Lo stile per il modulo. | -| `disabled` | `false` | Disables the `hostname` module. | +| Opzione | Default | Descrizione | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | Lo stile per il modulo. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### Esempio +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Opzioni +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Opzione | Default | Descrizione | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | Lo stile per il modulo. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Quali estensioni dovrebbero attivare questo modulo. | | `detect_files` | `[]` | Quali nomi di file dovrebbero attivare questo modulo. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Descrizione | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Esempio | Descrizione | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Quali cartelle dovrebbero attivare questo modulo. | | `style` | `'bold green'` | Lo stile per il modulo. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Opzione | Default | Descrizione | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | Lo stile per il modulo. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | Lo stile per il modulo. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3038,16 +3169,16 @@ The `perl` module shows the currently installed version of [Perl](https://www.pe ### Opzioni -| Opzione | Default | Descrizione | -| ------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minore`, & `patch` | -| `symbol` | `'🐪 '` | The symbol used before displaying the version of Perl | -| `detect_extensions` | `['pl', 'pm', 'pod']` | Quali estensioni dovrebbero attivare questo modulo. | -| `detect_files` | `['Makefile.PL', 'Build.PL', 'cpanfile', 'cpanfile.snapshot', 'META.json', 'META.yml', '.perl-version']` | Quali nomi di file dovrebbero attivare questo modulo. | -| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | -| `style` | `'bold 149'` | Lo stile per il modulo. | -| `disabled` | `false` | Disables the `perl` module. | +| Opzione | Default | Descrizione | +| ------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🐪 '` | The symbol used before displaying the version of Perl | +| `detect_extensions` | `['pl', 'pm', 'pod']` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_files` | `['Makefile.PL', 'Build.PL', 'cpanfile', 'cpanfile.snapshot', 'META.json', 'META.yml', '.perl-version']` | Quali nomi di file dovrebbero attivare questo modulo. | +| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | +| `style` | `'bold 149'` | Lo stile per il modulo. | +| `disabled` | `false` | Disables the `perl` module. | ### Variables @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | Lo stile per il modulo. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Quali estensioni dovrebbero attivare questo modulo | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Quali nomi di file dovrebbero attivare questo modulo | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Opzioni -| Opzione | Default | Descrizione | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | Lo stile per il modulo. | -| `disabled` | `true` | Disables the `shell` module. | +| Opzione | Default | Descrizione | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | Lo stile per il modulo. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Opzione | Default | Descrizione | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Quali estensioni dovrebbero attivare questo modulo. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Quali estensioni dovrebbero attivare questo modulo. | | `detect_files` | `[]` | Quali nomi di file dovrebbero attivare questo modulo. | | `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | -| `style` | `"bold blue"` | Lo stile per il modulo. | +| `style` | `'bold blue'` | Lo stile per il modulo. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Opzioni + +| Opzione | Default | Descrizione | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | Lo stile per il modulo. | +| `detect_extensions` | `['.typ']` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_files` | `['template.typ']` | Quali nomi di file dovrebbero attivare questo modulo. | +| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Esempio | Descrizione | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/it-IT/guide/README.md b/docs/it-IT/guide/README.md index 90774728..f718014a 100644 --- a/docs/it-IT/guide/README.md +++ b/docs/it-IT/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Segui @StarshipPrompt su Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/it-IT/presets/README.md b/docs/it-IT/presets/README.md index 532d5c7d..b5e07764 100644 --- a/docs/it-IT/presets/README.md +++ b/docs/it-IT/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/it-IT/presets/gruvbox-rainbow.md b/docs/it-IT/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..300d2ad4 --- /dev/null +++ b/docs/it-IT/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Prerequisiti + +- Un [ Nerd Font ](https://www.nerdfonts.com/) installato e abilitato nel tuo terminale + +### Configurazione + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/it-IT/presets/jetpack.md b/docs/it-IT/presets/jetpack.md new file mode 100644 index 00000000..90212874 --- /dev/null +++ b/docs/it-IT/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configurazione + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/ja-JP/README.md b/docs/ja-JP/README.md index 48786a3d..2d5e81c2 100644 --- a/docs/ja-JP/README.md +++ b/docs/ja-JP/README.md @@ -50,12 +50,12 @@ description: Starship はミニマルで、非常に高速で、カスタマイ #### パッケージマネージャー経由でインストール - [ Homebrew ](https://brew.sh/)の場合: + [ Homebrew](https://brew.sh/)を使用する ```sh brew install starship ``` - With [Winget](https://github.com/microsoft/winget-cli): + [Winget](https://github.com/microsoft/winget-cli)を使用する ```powershell winget install starship @@ -153,7 +153,7 @@ description: Starship はミニマルで、非常に高速で、カスタマイ ::: - Nushellの環境ファイルの最後に以下を追記してください ( `$nu.env-path` を実行してください): + そして、Nushellの設定ファイルの最後に以下を追加してください( `$nu.config-path` を実行してください): ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/ja-JP/config/README.md b/docs/ja-JP/config/README.md index b66bfe9f..915a02ed 100644 --- a/docs/ja-JP/config/README.md +++ b/docs/ja-JP/config/README.md @@ -206,6 +206,13 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | `add_newline` | `true` | シェルプロンプトの間に空行を挿入します。 | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### 設定例 @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ The module will display a profile only if its credentials are present in `~/.aws When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### オプション | オプション | デフォルト | 説明 | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | AWS名に加えて表示するリージョンのエイリアスです。 | | `profile_aliases` | `{}` | AWS名に加えて表示するプロファイルのエイリアスです。 | | `style` | `'bold yellow'` | モジュールのスタイルです。 | -| `expiration_symbol` | `X` | この記号は一時的な資格情報が有効期限切れの場合に表示されます。 | +| `expiration_symbol` | `'X'` | この記号は一時的な資格情報が有効期限切れの場合に表示されます。 | | `disabled` | `false` | `aws`モジュールを無効にします。 | | `force_display` | `false` | `true`の場合、`credentials`、`credential_process`または`sso_start_url`が設定されていない場合でも情報を表示します。 | @@ -620,17 +632,17 @@ format = 'via [🍔 $version](bold green) ' ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------ | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | モジュールのフォーマット文字列。 | -| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'C '` | コンパイラの詳細を表示する前に使用される記号です。 | -| `detect_extensions` | `['c', 'h']` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | コンパイラを検出する方法 | -| `style` | `'bold 149'` | モジュールのスタイルです。 | -| `disabled` | `false` | `c`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------ | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | モジュールのフォーマット文字列。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'C '` | コンパイラの詳細を表示する前に使用される記号です。 | +| `detect_extensions` | `['c', 'h']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | コンパイラを検出する方法 | +| `style` | `'bold 149'` | モジュールのスタイルです。 | +| `disabled` | `false` | `c`モジュールを無効にします。 | ### 変数 @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### オプション + +| オプション | デフォルト | 説明 | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | module のフォーマットです。 | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | モジュールのスタイルです。 | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['.envrc']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### 変数 + +| 変数 | 設定例 | 説明 | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | オプション `symbol` の値をミラーする. | +| style\* | `red bold` | オプション `style` の値をミラーする. | + +*: この変数は、スタイル文字列の一部としてのみ使用することができます。 + +### 設定例 + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context `docker_context`モジュールは、`default`に設定されていない場合、または環境変数`DOCKER_MACHINE_NAME`、`DOCKER_HOST`または`DOCKER_CONTEXT`が設定されている場合 (使用中のコンテキストを上書きするため)、現在アクティブな[Docker context](https://docs.docker.com/engine/context/working-with-contexts/)を表示します。 @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | モジュールのスタイルです。 | -| `detect_extensions` | `[fnl]` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_extensions` | `['fnl']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### オプション + +| オプション | デフォルト | 説明 | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | module のフォーマットです。 | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### 変数 + +| 変数 | 設定例 | 説明 | +| ----------------- | --- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: この変数は、スタイル文字列の一部としてのみ使用することができます。 + +### 設定例 + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) `gcloud` モジュールは、 [`gcloud`](https://cloud.google.com/sdk/gcloud) CLIの現在の設定が表示されます。 これは `~/.config/gcloud/active_config` ファイルと `~/.config/gcloud/configurations/config_{CONFIG NAME}` ファイルと `CLOUDSDK_CONFIG` 環境変数に基づきます。 -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### オプション @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | オプション | デフォルト | 説明 | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | module のフォーマットです。 | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | モジュールのスタイルです。 | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | モジュールのスタイルです。 | | `disabled` | `false` | Disables the `guix_shell` module. | ### 変数 @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | オプション | デフォルト | 説明 | | ------------------- | ------------------------------------ | ------------------------------------------------------ | -| `format` | `"via [$symbol($version )]($style)"` | module のフォーマットです。 | -| `version_format` | `"v${raw}"` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | どの拡張子がこのモジュールをアクティブにするか | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `["gradle"]` | どのフォルダーがこのモジュールをアクティブにするか | -| `style` | `"bold bright-cyan"` | モジュールのスタイルです。 | +| `detect_folders` | `['gradle']` | どのフォルダーがこのモジュールをアクティブにするか | +| `style` | `'bold bright-cyan'` | モジュールのスタイルです。 | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | オプション | デフォルト | 説明 | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -| `format` | `"via [$symbol($version )]($style)"` | module のフォーマットです。 | -| `version_format` | `"v${raw}"` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `detect_extensions` | `["hx", "hxml"]` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | どのフォルダーがこのモジュールをアクティブにするか | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | モジュールのスタイルです。 | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `detect_extensions` | `['hx', 'hxml']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | どのフォルダーがこのモジュールをアクティブにするか | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | モジュールのスタイルです。 | | `disabled` | `false` | Disables the `haxe` module. | ### 変数 @@ -2107,14 +2195,15 @@ format = 'via [⎈ $version](bold white) ' ### オプション -| オプション | デフォルト | 説明 | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | SSHセッションに接続されている場合にのみホスト名を表示します。 | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | この文字が最初にマッチするまでをホスト名と認識します。 `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | module のフォーマットです。 | -| `style` | `'bold dimmed green'` | モジュールのスタイルです。 | -| `disabled` | `false` | `hostname`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ----------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | SSHセッションに接続されている場合にのみホスト名を表示します。 | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | この文字が最初にマッチするまでをホスト名と認識します。 `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | module のフォーマットです。 | +| `style` | `'bold dimmed green'` | モジュールのスタイルです。 | +| `disabled` | `false` | `hostname`モジュールを無効にします。 | ### 変数 @@ -2128,6 +2217,8 @@ format = 'via [⎈ $version](bold white) ' ### 設定例 +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java `Java`モジュールは、現在インストールされている[Java](https://www.oracle.com/java/)のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. 環境変数`$KUBECONFIG`が設定されている場合、このモジュールはそれを利用し、`~/.kube/config`を利用しません。 +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. 環境変数`$KUBECONFIG`が設定されている場合、このモジュールはそれを利用し、`~/.kube/config`を利用しません。 ::: tip @@ -2335,17 +2437,39 @@ When the module is enabled it will always be active, unless any of `detect_exten ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | ---------------------------------------------------- | --------------------------------- | -| `symbol` | `'☸ '` | クラスター名の前に表示されるシンボルを表すフォーマット文字列。 | -| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | module のフォーマットです。 | -| `style` | `'cyan bold'` | モジュールのスタイルです。 | -| `context_aliases` | `{}` | コンテキストの表示エイリアスを定義するテーブル。 | -| `user_aliases` | `{}` | Table of user aliases to display. | -| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `disabled` | `true` | `kubernetes` モジュールを無効にする。 | +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + +| オプション | デフォルト | 説明 | +| ------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `symbol` | `'☸ '` | クラスター名の前に表示されるシンボルを表すフォーマット文字列。 | +| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | module のフォーマットです。 | +| `style` | `'cyan bold'` | モジュールのスタイルです。 | +| `context_aliases`* | `{}` | コンテキストの表示エイリアスを定義するテーブル。 | +| `user_aliases`* | `{}` | Table of user aliases to display. | +| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | +| `disabled` | `true` | `kubernetes` モジュールを無効にする。 | + +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| 変数 | 説明 | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). ### 変数 @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ format = 'via [☃️ $state( \($name\))](bold blue) ' | `detect_folders` | `['node_modules']` | どのフォルダーがこのモジュールをアクティブにするか | | `style` | `'bold green'` | モジュールのスタイルです。 | | `disabled` | `false` | `nodejs`モジュールを無効にします。 | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### 変数 @@ -2890,8 +3021,8 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known | オプション | デフォルト | 説明 | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | module のフォーマットです。 | -| `style` | `"bold white"` | モジュールのスタイルです。 | +| `format` | `'[$symbol]($style)'` | module のフォーマットです。 | +| `style` | `'bold white'` | モジュールのスタイルです。 | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ The `python` module shows the currently installed version of [Python](https://ww | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | モジュールのスタイルです。 | | `pyenv_version_name` | `false` | pyenvを使用してPythonバージョンを取得します | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | どのファイル名がこのモジュールをアクティブにするか | @@ -3562,22 +3693,23 @@ The `shell` module shows an indicator for currently used shell. ### オプション -| オプション | デフォルト | 説明 | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | module のフォーマットです。 | -| `style` | `'white bold'` | モジュールのスタイルです。 | -| `disabled` | `true` | Disables the `shell` module. | +| オプション | デフォルト | 説明 | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | module のフォーマットです。 | +| `style` | `'white bold'` | モジュールのスタイルです。 | +| `disabled` | `true` | Disables the `shell` module. | ### 変数 @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | オプション | デフォルト | 説明 | | ------------------- | ------------------------------------ | ------------------------------------------------------ | -| `format` | `"via [$symbol($version )]($style)"` | module のフォーマットです。 | -| `version_format` | `"v${major}.${minor}.${patch}"` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | どの拡張子がこのモジュールをアクティブにするか | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${major}.${minor}.${patch}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `style` | `"bold blue"` | モジュールのスタイルです。 | +| `style` | `'bold blue'` | モジュールのスタイルです。 | | `disabled` | `false` | Disables this module. | ### 変数 @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 + +- カレントディレクトリに`template.typ`ファイルが含まれている +- The current directory contains any `*.typ` file + +### オプション + +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------------ | ------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'t '` | Damlの記号を表すフォーマット文字列です。 | +| `style` | `'bold #0093A7'` | モジュールのスタイルです。 | +| `detect_extensions` | `['.typ']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['template.typ']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `disabled` | `false` | `daml`モジュールを無効にします。 | + +### 変数 + +| 変数 | 設定例 | 説明 | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | + +*: この変数は、スタイル文字列の一部としてのみ使用することができます。 + ## ユーザー名 `username`モジュールはアクティブなユーザーのユーザー名を表示します。 次の条件のいずれかが満たされると、モジュールが表示されます: diff --git a/docs/ja-JP/guide/README.md b/docs/ja-JP/guide/README.md index 84677ee3..1d0167b3 100644 --- a/docs/ja-JP/guide/README.md +++ b/docs/ja-JP/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Follow @StarshipPrompt on Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

@@ -270,7 +274,7 @@ curl -sS https://starship.rs/install.sh | sh
-### Step 2. Set up your shell to use Starship +### Step 2. Starshipをシェルにセットアップ Starshipを初期化するためのシェルの設定。 以下のリストからお使いのシェルを選択してください。 @@ -334,27 +338,27 @@ eval $(starship init ion)
Nushell -Nushellの環境ファイルの最後に以下を追記してください ( `$nu.env-path` を実行してください): +そして、Nushellの設定ファイルの最後に以下を追加してください( `$nu.config-path` を実行してください): ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` -そして、Nushellの設定ファイルの最後に以下を追加してください( `$nu.config-path` を実行してください)。 +そして、Nushellの設定ファイルの最後に以下を追記してください (`$nu.config-path` を実行してください): ```sh use ~/.cache/starship/init.nu ``` -注意: Elvish v0.78以降でサポートされています +注意: Nushell v0.78以降でサポートされています
PowerShell -PowerShellの設定ファイルの最後に以下を追記してください (`$PROFILE` を実行してください): +そして、Nushellの設定ファイルの最後に以下を追加してください( `$PROFILE.config-path` を実行してください): ```powershell Invoke-Expression (&starship init powershell) diff --git a/docs/ja-JP/presets/README.md b/docs/ja-JP/presets/README.md index cbfe7047..0eebf1a3 100644 --- a/docs/ja-JP/presets/README.md +++ b/docs/ja-JP/presets/README.md @@ -63,3 +63,9 @@ This preset does not show icons if the toolset is not found. このプリセットは[tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme)を参考にしています。 [![Tokyo Night プリセットのスクリーンショット](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/ja-JP/presets/gruvbox-rainbow.md b/docs/ja-JP/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..badafdbd --- /dev/null +++ b/docs/ja-JP/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[プリセット一覧に戻る](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### 必要なもの + +- [Nerd Font](https://www.nerdfonts.com/)のインストールとターミナルでの有効化 + +### 設定 + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[クリックしてTOMLをダウンロード](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ja-JP/presets/jetpack.md b/docs/ja-JP/presets/jetpack.md new file mode 100644 index 00000000..59a44ce3 --- /dev/null +++ b/docs/ja-JP/presets/jetpack.md @@ -0,0 +1,24 @@ +[プリセット一覧に戻る](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### 設定 + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[クリックしてTOMLをダウンロード](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/ko-KR/README.md b/docs/ko-KR/README.md index c3d7bbbd..1b95959b 100644 --- a/docs/ko-KR/README.md +++ b/docs/ko-KR/README.md @@ -2,23 +2,23 @@ home: true heroImage: /logo.svg heroText: -tagline: 간결하고 화끈하게 빠르며 무제한으로 커스터마이징이 가능한 프롬프트. 어떤 쉘에서든 사용할 수 있습니다! -actionText: Get Started → +tagline: 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! +actionText: 시작하기 → actionLink: ./guide/ features: - - title: Compatibility First - details: Works on the most common shells on the most common operating systems. Use it everywhere! + title: 호환성 우선 + details: 거의 모든 운영 체제의 거의 모든 셸에서 동작합니다. 모든 곳에서 사용해 보세요! - - title: Rust-Powered - details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. + title: Rust 기반 + details: Rust의 최고 수준의 속도와 안정성으로 프롬프트를 가능한 한 빠르고 안정적으로 만들어 보세요. - - title: Customizable - details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. + title: 커스텀 가능 + details: 모든 사소한 디테일들을 마음대로 커스텀할 수 있어, 프롬프트를 원하는 만큼 간단하게 만들거나 기능이 풍부하게 만들 수 있습니다. footer: ISC Licensed | Copyright © 2019-present Starship Contributors #Used for the description meta tag, for SEO -metaTitle: "Starship: Cross-Shell Prompt" -description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. +metaTitle: "Starship: 크로스-셸 프롬프트" +description: Starship은 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! 필요한 정보를 깔끔하고 간략하게 표시합니다. Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, 및 PowerShell에 빠르게 설치할 수 있습니다. ---
@@ -39,7 +39,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p #### 최근 버전 설치 - With Shell: + 셸로 설치: ```sh curl -sS https://starship.rs/install.sh | sh @@ -48,14 +48,14 @@ description: Starship is the minimal, blazing fast, and extremely customizable p Starship을 업데이트하고 싶은 경우에도 위의 스크립트를 실행시키면 됩니다. Starship의 설정은 변경되지 않고 버전만 최근 버전으로 대체될 것입니다. - #### 패키지 매니저를 이용한 설치 + #### 패키지 매니저로 설치하기 - [Homebrew](https://brew.sh/)를 통한 설치: + [Homebrew](https://brew.sh/)로 설치: ```sh brew install starship ``` - With [Winget](https://github.com/microsoft/winget-cli): + [Winget](https://github.com/microsoft/winget-cli)으로 설치: ```powershell winget install starship @@ -121,7 +121,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: warning - Only elvish v0.18 or higher is supported. + elvish 버전 v0.18 이상에서만 지원됩니다. ::: @@ -149,17 +149,17 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: warning - This will change in the future. Only Nushell v0.78+ is supported. + 추후에 변경될 예정입니다. Nushell v0.78 버전 이상에서만 지원됩니다. ::: - Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + 다음 내용을 Nushell env 파일 (찾으려면 Nushell에서 `$nu.env-path` 실행) 마지막 부분에 추가하세요: ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` - And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`): + 다음 내용을 Nushell 설정 파일 (찾으려면 Nushell에서 `$nu.config-path` 실행) 마지막 부분에 추가하세요: ```sh use ~/.cache/starship/init.nu diff --git a/docs/ko-KR/advanced-config/README.md b/docs/ko-KR/advanced-config/README.md index 01374cef..b18e3a05 100644 --- a/docs/ko-KR/advanced-config/README.md +++ b/docs/ko-KR/advanced-config/README.md @@ -1,4 +1,4 @@ -# Advanced Configuration +# 고급 설정 While Starship is a versatile shell, sometimes you need to do more than edit `starship.toml` to get it to do certain things. This page details some of the more advanced configuration techniques used in starship. @@ -199,27 +199,27 @@ function Invoke-Starship-PreCommand { Invoke-Expression (&starship init powershell) ``` -## Enable Right Prompt +## 오른쪽 프롬프트 활성화 -Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. +일부 셸은 입력과 같은 줄에 렌더링되는 오른쪽 프롬프트를 지원합니다. Starship에서는 `right_format` 옵션을 사용하여 오른쪽 프롬프트의 내용을 설정할 수 있습니다. `format`에서 사용할 수 있는 모든 모듈은 `right_format`에서도 지원됩니다. `$all` 변수는 `format` 또는 `right_format`에서 명시적으로 사용하지 않는 모듈만 포함합니다. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +알림: 오른쪽 프롬프트는 입력 위치에 따라 한 줄로 표시됩니다. 여러 줄 프롬프트에서 입력 선 위의 모듈을 오른쪽 정렬하려면, [`fill` 모듈](/config/#fill)을 참고하세요. -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format`은 현재 elvish, fish, zsh, xonsh, cmd, nushell에서 지원됩니다. -### Example +### 예시 ```toml # ~/.config/starship.toml -# A minimal left prompt +# 간결한 왼쪽 프롬프트 format = """$character""" -# move the rest of the prompt to the right +# 프롬프트의 나머지를 오른쪽으로 옮기기 right_format = """$all""" ``` -Produces a prompt like the following: +위 설정은 아래와 같은 프롬프트를 출력합니다: ``` ▶ starship on  rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s @@ -239,7 +239,7 @@ Note: Continuation prompts are only available in the following shells: - `zsh` - `Powershell` -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -248,9 +248,9 @@ Note: Continuation prompts are only available in the following shells: continuation_prompt = '▶▶ ' ``` -## Style Strings +## 스타일 문자열 -Style strings are a list of words, separated by whitespace. The words are not case sensitive (i.e. `bold` and `BoLd` are considered the same string). Each word can be one of the following: +스타일 문자열은 공백으로 구분된 단어 목록입니다. 단어는 대소문자를 구분하지 않습니다 (즉, `bold`와 `BoLd`는 동일한 문자열로 간주됩니다). 각 단어는 다음 중 하나가 될 수 있습니다: - `bold` - `italic` @@ -265,15 +265,15 @@ Style strings are a list of words, separated by whitespace. The words are not ca - `` - `none` -where `` is a color specifier (discussed below). `fg:` and `` currently do the same thing, though this may change in the future. `inverted` swaps the background and foreground colors. The order of words in the string does not matter. +`` 부분은 색상 지정자입니다 (아래에 후술). 현재, `fg:` 와 ``는 동일한 동작을 하지만 차후에 바뀔 수 있습니다. `inverted`는 배경 색과 전경 색을 서로 바꿉니다. 문자열의 단어 순서는 중요하지 않습니다. -The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future. +The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. 향후 다른 토큰과 함께 `none`을 사용하는 것은 오류가 발생할 수 있습니다. -A color specifier can be one of the following: +색상 지정자는 다음 중 하나가 될 수 있습니다: -- One of the standard terminal colors: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. You can optionally prefix these with `bright-` to get the bright version (e.g. `bright-white`). -- A `#` followed by a six-digit hexadecimal number. This specifies an [RGB color hex code](https://www.w3schools.com/colors/colors_hexadecimal.asp). -- A number between 0-255. This specifies an [8-bit ANSI Color Code](https://i.stack.imgur.com/KTSQa.png). +- 표준 터미널 색상: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. 앞에 `bright-`를 붙여 밝게 만들 수도 있습니다 (예시: `bright-white`). +- `#` 다음의 여섯 자리 16진수 숫자. 이는 [RGB 색상 16진수 코드](https://www.w3schools.com/colors/colors_hexadecimal.asp)입니다. +- 0~255 사이의 숫자. 이는 [8비트 ANSI 색상 코드](https://i.stack.imgur.com/KTSQa.png)입니다. If multiple colors are specified for foreground/background, the last one in the string will take priority. diff --git a/docs/ko-KR/config/README.md b/docs/ko-KR/config/README.md index 396fbb2c..4875c0e8 100644 --- a/docs/ko-KR/config/README.md +++ b/docs/ko-KR/config/README.md @@ -1,30 +1,30 @@ -# Configuration +# 설정 -To get started configuring starship, create the following file: `~/.config/starship.toml`. +Starship을 설정하려면, `~/.config/starship.toml` 경로에 파일을 만드세요. ```sh mkdir -p ~/.config && touch ~/.config/starship.toml ``` -All configuration for starship is done in this [TOML](https://github.com/toml-lang/toml) file: +Starship의 모든 설정은 이 [TOML](https://github.com/toml-lang/toml) 파일에서 할 수 있습니다. ```toml -# Get editor completions based on the config schema +# 설정 스키마에 따른 에디터 자동 완성 가져오기 "$schema" = 'https://starship.rs/config-schema.json' -# Inserts a blank line between shell prompts +# 셸 프롬프트 사이에 빈 줄 추가하기 add_newline = true -# Replace the '❯' symbol in the prompt with '➜' -[character] # The name of the module we are configuring is 'character' -success_symbol = '[➜](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green' +# 프롬프트의 '❯' 심볼을 '➜' 로 대체하기 +[character] # 설정할 모듈의 이름은 'character' +success_symbol = '[➜](bold green)' # 'success_symbol' 세그먼트를 'bold green' 색상의 '➜' 로 설정 -# Disable the package module, hiding it from the prompt completely +# package 모듈을 비활성화하고 프롬프트에서 완전히 숨겨버리기 [package] disabled = true ``` -### Config File Location +### 설정 파일 경로 You can change default configuration file location with `STARSHIP_CONFIG` environment variable: @@ -44,7 +44,7 @@ Or for Cmd (Windows) would be adding this line to your `starship.lua`: os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\starship.toml') ``` -### Logging +### 로그 By default starship logs warnings and errors into a file named `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`, where the session key is corresponding to an instance of your terminal. This, however can be changed using the `STARSHIP_CACHE` environment variable: @@ -64,28 +64,28 @@ Or for Cmd (Windows) would be adding this line to your `starship.lua`: os.setenv('STARSHIP_CACHE', 'C:\\Users\\user\\AppData\\Local\\Temp') ``` -### Terminology +### 용어 -**Module**: A component in the prompt giving information based on contextual information from your OS. For example, the "nodejs" module shows the version of Node.js that is currently installed on your computer, if your current directory is a Node.js project. +**모듈**: OS의 배경 정보를 기반으로 정보를 제공하는 프롬프트의 구성 요소입니다. 예를 들어, "nodejs" 모듈은 현재 디렉토리가 Node.js 프로젝트 디렉토리라면 컴퓨터에 현재 설치되어 있는 Node.js 버전을 보여줍니다. **Variable**: Smaller sub-components that contain information provided by the module. For example, the "version" variable in the "nodejs" module contains the current version of Node.js. By convention, most modules have a prefix of default terminal color (e.g. `via` in "nodejs") and an empty space as a suffix. -### Strings +### 문자열 -In TOML syntax, [text values](https://toml.io/en/v1.0.0#string) are declared with `'`, `"`, `'''`, or `"""`. +TOML 문법에서는 [텍스트 값](https://toml.io/en/v1.0.0#string)을 `'`, `"`, `'''`, 그리고 `"""`으로 지정합니다. The following Starship syntax symbols have special usage in a format string and must be escaped to display as that character: `$ [ ] ( )`. -| Symbol | Type | Notes | -| ------ | ------------------------- | ------------------------------------------------------ | -| `'` | literal string | less escaping | -| `"` | string | more escaping | -| `'''` | multi-line literal string | less escaping | -| `"""` | multi-line string | more escaping, newlines in declarations can be ignored | +| 기호 | 종류 | 비고 | +| ----- | ------------------------- | ------------------------------------------------------ | +| `'` | 리터럴 문자열 | less escaping | +| `"` | string | more escaping | +| `'''` | multi-line literal string | less escaping | +| `"""` | multi-line string | more escaping, newlines in declarations can be ignored | -For example: +예를 들어: ```toml # literal string @@ -136,7 +136,7 @@ Format strings are the format that a module prints all its variables with. Most A variable contains a `$` symbol followed by the name of the variable. The name of a variable can only contain letters, numbers and `_`. -For example: +예를 들어: - `'$version'` is a format string with a variable named `version`. - `'$git_branch$git_commit'` is a format string with two variables named `git_branch` and `git_commit`. @@ -150,15 +150,15 @@ The first part, which is enclosed in a `[]`, is a [format string](#format-string In the second part, which is enclosed in a `()`, is a [style string](#style-strings). This can be used to style the first part. -For example: +예를 들어: - `'[on](red bold)'` will print a string `on` with bold text colored red. - `'[⌘ $version](bold green)'` will print a symbol `⌘` followed by the content of variable `version`, with bold text colored green. - `'[a [b](red) c](green)'` will print `a b c` with `b` red, and `a` and `c` green. -#### Style Strings +#### 스타일 문자열 -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Starship의 대부분의 모듈에 표시 스타일을 설정할 수 있습니다. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -173,7 +173,7 @@ Note that what styling looks like will be controlled by your terminal emulator. A conditional format string wrapped in `(` and `)` will not render if all variables inside are empty. -For example: +예를 들어: - `'(@$region)'` will show nothing if the variable `region` is `None` or empty string, otherwise `@` followed by the value of region. - `'(some text)'` will always show nothing since there are no variables wrapped in the braces. @@ -206,8 +206,15 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | -### Example +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: + +### 예시 ```toml # ~/.config/starship.toml @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,32 +361,34 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | | ------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | `format` | `'on [$symbol($profile )(\($region\) )(\[$duration\] )]($style)'` | The format for the module. | -| `symbol` | `'☁️ '` | The symbol used before displaying the current AWS profile. | +| `기호` | `'☁️ '` | The symbol used before displaying the current AWS profile. | | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------------- | ------------------------------------------- | | region | `ap-northeast-1` | The current AWS region | | profile | `astronauts` | The current AWS profile | | duration | `2h27m20s` | The temporary credentials validity duration | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Examples +### 예시 #### Display everything @@ -430,12 +442,12 @@ The `azure` module shows the current Azure Subscription. This is based on showin | Variable | Default | Description | | ---------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------- | | `format` | `'on [$symbol($subscription)]($style) '` | The format for the Azure module to render. | -| `symbol` | `'󰠅 '` | The symbol used in the format. | +| `기호` | `'󰠅 '` | The symbol used in the format. | | `style` | `'blue bold'` | The style used in the format. | | `disabled` | `true` | Disables the `azure` module. | | `subscription_aliases` | `{}` | Table of subscription name aliases to display in addition to Azure subscription name. | -### Examples +### 예시 #### Display Subscription Name @@ -487,7 +499,7 @@ The `battery` module shows how charged the device's battery is and its current c | `display` | [link](#battery-display) | Display threshold and style for the module. | | `disabled` | `false` | Disables the `battery` module. | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -521,7 +533,7 @@ The `display` option is an array of the following table. | `charging_symbol` | | Optional symbol displayed if display option is in use, defaults to battery's `charging_symbol` option. | | `discharging_symbol` | | Optional symbol displayed if display option is in use, defaults to battery's `discharging_symbol` option. | -#### Example +#### 예시 ```toml [[battery.display]] # 'bold red' style and discharging_symbol when capacity is between 0% and 10% @@ -549,7 +561,7 @@ The `buf` module shows the currently installed version of [Buf](https://buf.buil | ------------------- | ----------------------------------------------- | ----------------------------------------------------- | | `format` | `'with [$symbol($version )]($style)'` | The format for the `buf` module. | | `version_format` | `'v${raw}'` | The version format. | -| `symbol` | `'🐃 '` | The symbol used before displaying the version of Buf. | +| `기호` | `'🐃 '` | The symbol used before displaying the version of Buf. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `['buf.yaml', 'buf.gen.yaml', 'buf.work.yaml']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | @@ -558,15 +570,15 @@ The `buf` module shows the currently installed version of [Buf](https://buf.buil ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | `version` | `v1.0.0` | The version of `buf` | -| `symbol` | | Mirrors the value of option `symbol` | +| `기호` | | Mirrors the value of option `symbol` | | `style`* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -588,7 +600,7 @@ The `bun` module shows the currently installed version of the [bun](https://bun. | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🍞 '` | A format string representing the symbol of Bun. | +| `기호` | `'🍞 '` | A format string representing the symbol of Bun. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `['bun.lockb', 'bunfig.toml']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -597,15 +609,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v0.1.4` | The version of `bun` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -620,26 +632,26 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `기호` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables -| Variable | Example | Description | -| -------- | ------- | ------------------------------------ | -| name | clang | The name of the compiler | -| version | 13.0.0 | The version of the compiler | -| symbol | | Mirrors the value of option `symbol` | -| style | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| -------- | ------ | ------------------------------------ | +| name | clang | The name of the compiler | +| version | 13.0.0 | The version of the compiler | +| 기호 | | Mirrors the value of option `symbol` | +| style | | Mirrors the value of option `style` | NB that `version` is not in the default format. @@ -651,7 +663,7 @@ Each command is represented as a list of the executable name, followed by its ar If a C compiler is not supported by this module, you can request it by [raising an issue on GitHub](https://github.com/starship/starship/). -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -692,11 +704,11 @@ By default it only changes color. If you also want to change its shape take a lo ### Variables -| Variable | Example | Description | -| -------- | ------- | -------------------------------------------------------------------------------------------------------- | -| symbol | | A mirror of either `success_symbol`, `error_symbol`, `vimcmd_symbol` or `vimcmd_replace_one_symbol` etc. | +| Variable | 예시 | Description | +| -------- | -- | -------------------------------------------------------------------------------------------------------- | +| 기호 | | A mirror of either `success_symbol`, `error_symbol`, `vimcmd_symbol` or `vimcmd_replace_one_symbol` etc. | -### Examples +### 예시 #### With custom error shape @@ -740,7 +752,7 @@ The `cmake` module shows the currently installed version of [CMake](https://cmak | ------------------- | -------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'△ '` | The symbol used before the version of cmake. | +| `기호` | `'△ '` | The symbol used before the version of cmake. | | `detect_extensions` | `[]` | Which extensions should trigger this module | | `detect_files` | `['CMakeLists.txt', 'CMakeCache.txt']` | Which filenames should trigger this module | | `detect_folders` | `[]` | Which folders should trigger this module | @@ -749,10 +761,10 @@ The `cmake` module shows the currently installed version of [CMake](https://cmak ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | --------- | ------------------------------------ | | version | `v3.17.3` | The version of cmake | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string @@ -768,7 +780,7 @@ The `cobol` module shows the currently installed version of COBOL. By default, t | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `symbol` | `'⚙️ '` | The symbol used before displaying the version of COBOL. | +| `기호` | `'⚙️ '` | The symbol used before displaying the version of COBOL. | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `style` | `'bold blue'` | The style for the module. | @@ -779,10 +791,10 @@ The `cobol` module shows the currently installed version of COBOL. By default, t ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------- | ------------------------------------ | | version | `v3.1.2.0` | The version of `cobol` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string @@ -814,14 +826,14 @@ Bash users who need preexec-like functionality can use [rcaloras's bash_preexec ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | --------------------------------------- | | duration | `16m40s` | The time it took to execute the command | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -846,7 +858,7 @@ This does not suppress conda's own prompt modifier, you may want to run `conda c | Option | Default | Description | | ------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `truncation_length` | `1` | The number of directories the environment path should be truncated to, if the environment was created via `conda create -p [path]`. `0` means no truncation. Also see the [`directory`](#directory) module. | -| `symbol` | `'🅒 '` | The symbol used before the environment name. | +| `기호` | `'🅒 '` | The symbol used before the environment name. | | `style` | `'bold green'` | The style for the module. | | `format` | `'via [$symbol$environment]($style) '` | The format for the module. | | `ignore_base` | `true` | Ignores `base` environment when activated. | @@ -854,15 +866,15 @@ This does not suppress conda's own prompt modifier, you may want to run `conda c ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | ----------- | ------------ | ------------------------------------ | | environment | `astronauts` | The current conda environment | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -879,22 +891,22 @@ The `container` module displays a symbol and container name, if inside a contain | Option | Default | Description | | ---------- | ---------------------------------- | ----------------------------------------- | -| `symbol` | `'⬢'` | The symbol shown, when inside a container | +| `기호` | `'⬢'` | The symbol shown, when inside a container | | `style` | `'bold red dimmed'` | The style for the module. | | `format` | `'[$symbol \[$name\]]($style) '` | The format for the module. | | `disabled` | `false` | Disables the `container` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ------------------- | ------------------------------------ | | name | `fedora-toolbox:35` | The name of the container | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -914,7 +926,7 @@ The `crystal` module shows the currently installed version of [Crystal](https:// | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `symbol` | `'🔮 '` | The symbol used before displaying the version of crystal. | +| `기호` | `'🔮 '` | The symbol used before displaying the version of crystal. | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `style` | `'bold red'` | The style for the module. | @@ -925,15 +937,15 @@ The `crystal` module shows the currently installed version of [Crystal](https:// ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | --------- | ------------------------------------ | | version | `v0.32.1` | The version of `crystal` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -954,7 +966,7 @@ The `daml` module shows the currently used [Daml](https://www.digitalasset.com/d | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'Λ '` | A format string representing the symbol of Daml | +| `기호` | `'Λ '` | A format string representing the symbol of Daml | | `style` | `'bold cyan'` | The style for the module. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `['daml.yaml']` | Which filenames should trigger this module. | @@ -963,15 +975,15 @@ The `daml` module shows the currently used [Daml](https://www.digitalasset.com/d ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v2.2.0` | The version of `daml` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -994,7 +1006,7 @@ The `dart` module shows the currently installed version of [Dart](https://dart.d | ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🎯 '` | A format string representing the symbol of Dart | +| `기호` | `'🎯 '` | A format string representing the symbol of Dart | | `detect_extensions` | `['dart']` | Which extensions should trigger this module. | | `detect_files` | `['pubspec.yaml', 'pubspec.yml', 'pubspec.lock']` | Which filenames should trigger this module. | | `detect_folders` | `['.dart_tool']` | Which folders should trigger this module. | @@ -1003,15 +1015,15 @@ The `dart` module shows the currently installed version of [Dart](https://dart.d ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v2.8.4` | The version of `dart` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -1032,7 +1044,7 @@ The `deno` module shows you your currently installed version of [Deno](https://d | ------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🦕 '` | A format string representing the symbol of Deno | +| `기호` | `'🦕 '` | A format string representing the symbol of Deno | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `['deno.json', 'deno.jsonc', 'mod.ts', 'mod.js', 'deps.ts', 'deps.js']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -1041,13 +1053,13 @@ The `deno` module shows you your currently installed version of [Deno](https://d ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v1.8.3` | The version of `deno` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -1105,7 +1117,7 @@ For example, given `~/Dev/Nix/nixpkgs/pkgs` where `nixpkgs` is the repo root, an ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | --------------------- | ----------------------------------- | | path | `'D:/Projects'` | The current directory path | | style\* | `'black bold dimmed'` | Mirrors the value of option `style` | @@ -1117,7 +1129,7 @@ For example, given `~/Dev/Nix/nixpkgs/pkgs` where `nixpkgs` is the repo root, an Let us consider the path `/path/to/home/git_repo/src/lib` -| Variable | Example | Description | +| Variable | 예시 | Description | | ------------------ | --------------------- | --------------------------------------- | | before_root_path | `'/path/to/home/'` | The path before git root directory path | | repo_root | `'git_repo'` | The git root directory name | @@ -1127,7 +1139,7 @@ Let us consider the path `/path/to/home/git_repo/src/lib`
-### Example +### 예시 ```toml # ~/.config/starship.toml @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `기호` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | 예시 | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| 기호 | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### 예시 + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1146,7 +1199,7 @@ The `docker_context` module shows the currently active [Docker context](https:// | Option | Default | Description | | ------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------- | | `format` | `'via [$symbol$context]($style) '` | The format for the module. | -| `symbol` | `'🐳 '` | The symbol used before displaying the Docker context. | +| `기호` | `'🐳 '` | The symbol used before displaying the Docker context. | | `only_with_files` | `true` | Only show when there's a match | | `detect_extensions` | `[]` | Which extensions should trigger this module (needs `only_with_files` to be true). | | `detect_files` | `['docker-compose.yml', 'docker-compose.yaml', 'Dockerfile']` | Which filenames should trigger this module (needs `only_with_files` to be true). | @@ -1156,15 +1209,15 @@ The `docker_context` module shows the currently active [Docker context](https:// ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------------- | ------------------------------------ | | context | `test_context` | The current docker context | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -1200,7 +1253,7 @@ The module will also show the Target Framework Moniker ($` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------------------- | ---------------------------------------- | | context | `starship-context` | The current kubernetes context name | | namespace | `starship-namespace` | If set, the current kubernetes namespace | | user | `starship-user` | If set, the current kubernetes user | | cluster | `starship-cluster` | If set, the current kubernetes cluster | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2418,7 +2549,7 @@ The `line_break` module separates the prompt into two lines. | ---------- | ------- | ------------------------------------------------------------------ | | `disabled` | `false` | Disables the `line_break` module, making the prompt a single line. | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2442,14 +2573,14 @@ The `localip` module shows the IPv4 address of the primary network interface. ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ------------ | ----------------------------------- | | localipv4 | 192.168.1.13 | Contains the primary IPv4 address | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2474,7 +2605,7 @@ The `lua` module shows the currently installed version of [Lua](http://www.lua.o | ------------------- | ------------------------------------ | -------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🌙 '` | A format string representing the symbol of Lua. | +| `기호` | `'🌙 '` | A format string representing the symbol of Lua. | | `detect_extensions` | `['lua']` | Which extensions should trigger this module. | | `detect_files` | `['.lua-version']` | Which filenames should trigger this module. | | `detect_folders` | `['lua']` | Which folders should trigger this module. | @@ -2484,15 +2615,15 @@ The `lua` module shows the currently installed version of [Lua](http://www.lua.o ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v5.4.0` | The version of `lua` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2519,24 +2650,24 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | ----------- | ----------------------------------------------- | -------------------------------------------------------- | | `threshold` | `75` | Hide the memory usage unless it exceeds this percentage. | | `format` | `'via $symbol [${ram}( \| ${swap})]($style) '` | The format for the module. | -| `symbol` | `'🐏'` | The symbol used before displaying the memory usage. | +| `기호` | `'🐏'` | The symbol used before displaying the memory usage. | | `style` | `'bold dimmed white'` | The style for the module. | | `disabled` | `true` | Disables the `memory_usage` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | ---------------- | ------------- | ------------------------------------------------------------------ | | ram | `31GiB/65GiB` | The usage/total RAM of the current system memory. | | ram_pct | `48%` | The percentage of the current system memory. | | swap\*\* | `1GiB/4GiB` | The swap memory size of the current system swap memory file. | | swap_pct\*\* | `77%` | The swap memory percentage of the current system swap memory file. | -| symbol | `🐏` | Mirrors the value of option `symbol` | +| 기호 | `🐏` | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string *\*: The SWAP file information is only displayed if detected on the current system -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2561,21 +2692,21 @@ By default the Meson project name is displayed, if `$MESON_DEVENV` is set. | `truncation_length` | `2^32 - 1` | Truncates a project name to `N` graphemes. | | `truncation_symbol` | `'…'` | The symbol used to indicate a project name was truncated. You can use `''` for no symbol. | | `format` | `'via [$symbol$project]($style) '` | The format for the module. | -| `symbol` | `'⬢ '` | The symbol used before displaying the project name. | +| `기호` | `'⬢ '` | The symbol used before displaying the project name. | | `style` | `'blue bold'` | The style for the module. | | `disabled` | `false` | Disables the `meson` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------- | ------------------------------------ | | project | `starship` | The current Meson project name | -| symbol | `🐏` | Mirrors the value of option `symbol` | +| 기호 | `🐏` | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2595,7 +2726,7 @@ The `hg_branch` module shows the active branch and topic of the repo in your cur | Option | Default | Description | | ------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------- | -| `symbol` | `' '` | The symbol used before the hg bookmark or branch name of the repo in your current directory. | +| `기호` | `' '` | The symbol used before the hg bookmark or branch name of the repo in your current directory. | | `style` | `'bold purple'` | The style for the module. | | `format` | `'on [$symbol$branch(:$topic)]($style) '` | The format for the module. | | `truncation_length` | `2^63 - 1` | Truncates the hg branch / topic name to `N` graphemes | @@ -2604,16 +2735,16 @@ The `hg_branch` module shows the active branch and topic of the repo in your cur ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | --------- | ------------------------------------ | | branch | `master` | The active mercurial branch | | topic | `feature` | The active mercurial topic | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2639,7 +2770,7 @@ The `nim` module shows the currently installed version of [Nim](https://nim-lang | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'👑 '` | The symbol used before displaying the version of Nim. | +| `기호` | `'👑 '` | The symbol used before displaying the version of Nim. | | `detect_extensions` | `['nim', 'nims', 'nimble']` | Which extensions should trigger this module. | | `detect_files` | `['nim.cfg']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -2648,15 +2779,15 @@ The `nim` module shows the currently installed version of [Nim](https://nim-lang ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v1.2.0` | The version of `nimc` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2675,7 +2806,7 @@ The `nix_shell` module shows the [nix-shell](https://nixos.org/guides/nix-pills/ | Option | Default | Description | | ------------- | ---------------------------------------------- | --------------------------------------------------------------------- | | `format` | `'via [$symbol$state( \($name\))]($style) '` | The format for the module. | -| `symbol` | `'❄️ '` | A format string representing the symbol of nix-shell. | +| `기호` | `'❄️ '` | A format string representing the symbol of nix-shell. | | `style` | `'bold blue'` | The style for the module. | | `impure_msg` | `'impure'` | A format string shown when the shell is impure. | | `pure_msg` | `'pure'` | A format string shown when the shell is pure. | @@ -2685,16 +2816,16 @@ The `nix_shell` module shows the [nix-shell](https://nixos.org/guides/nix-pills/ ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ------- | ------------------------------------ | | state | `pure` | The state of the nix-shell | | name | `lorri` | The name of the nix-shell | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2724,26 +2855,26 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | ------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `' '` | A format string representing the symbol of Node.js. | +| `기호` | `' '` | A format string representing the symbol of Node.js. | | `detect_extensions` | `['js', 'mjs', 'cjs', 'ts', 'mts', 'cts']` | Which extensions should trigger this module. | | `detect_files` | `['package.json', '.node-version']` | Which filenames should trigger this module. | | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | version | `v13.12.0` | The version of `node` | | engines_version | `>=12.0.0` | `node` version requirement as set in the engines property of `package.json`. Will only show if the version requirement does not match the `node` version. | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2769,7 +2900,7 @@ The `ocaml` module shows the currently installed version of [OCaml](https://ocam | ------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )(\($switch_indicator$switch_name\) )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🐫 '` | The symbol used before displaying the version of OCaml. | +| `기호` | `'🐫 '` | The symbol used before displaying the version of OCaml. | | `global_switch_indicator` | `''` | The format string used to represent global OPAM switch. | | `local_switch_indicator` | `'*'` | The format string used to represent local OPAM switch. | | `detect_extensions` | `['opam', 'ml', 'mli', 're', 'rei']` | Which extensions should trigger this module. | @@ -2780,17 +2911,17 @@ The `ocaml` module shows the currently installed version of [OCaml](https://ocam ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | ---------------- | ------------ | ----------------------------------------------------------------- | | version | `v4.10.0` | The version of `ocaml` | | switch_name | `my-project` | The active OPAM switch | | switch_indicator | | Mirrors the value of `indicator` for currently active OPAM switch | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2809,7 +2940,7 @@ The `opa` module shows the currently installed version of the OPA tool. By defau | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🪖 '` | A format string representing the symbol of OPA. | +| `기호` | `'🪖 '` | A format string representing the symbol of OPA. | | `detect_extensions` | `['rego']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -2818,15 +2949,15 @@ The `opa` module shows the currently installed version of the OPA tool. By defau ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | --------- | ------------------------------------ | | version | `v0.44.0` | The version of `opa` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2844,22 +2975,22 @@ The `openstack` module shows the current OpenStack cloud and project. The module | Option | Default | Description | | ---------- | ----------------------------------------------- | -------------------------------------------------------------- | | `format` | `'on [$symbol$cloud(\($project\))]($style) '` | The format for the module. | -| `symbol` | `'☁️ '` | The symbol used before displaying the current OpenStack cloud. | +| `기호` | `'☁️ '` | The symbol used before displaying the current OpenStack cloud. | | `style` | `'bold yellow'` | The style for the module. | | `disabled` | `false` | Disables the `openstack` module. | ### Variables -| Variable | Example | Description | -| --------- | ------- | ------------------------------------ | -| cloud | `corp` | The current OpenStack cloud | -| project | `dev` | The current OpenStack project | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| --------- | ------ | ------------------------------------ | +| cloud | `corp` | The current OpenStack cloud | +| project | `dev` | The current OpenStack project | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -2945,11 +3076,11 @@ Windows = "🪟 " ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ------------ | ------------------------------------------------------------------ | -| symbol | `🎗️` | The current operating system symbol from advanced option `symbols` | +| 기호 | `🎗️` | The current operating system symbol from advanced option `symbols` | | name | `Arch Linux` | The current operating system name | -| type | `Arch` | The current operating system type | +| 종류 | `Arch` | The current operating system type | | codename | | The current operating system codename, if applicable | | edition | | The current operating system edition, if applicable | | version | | The current operating system version, if applicable | @@ -2957,7 +3088,7 @@ Windows = "🪟 " *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3001,7 +3132,7 @@ The `package` module is shown when the current directory is the repository for a | Option | Default | Description | | ----------------- | --------------------------------- | ------------------------------------------------------------------------- | | `format` | `'is [$symbol$version]($style) '` | The format for the module. | -| `symbol` | `'📦 '` | The symbol used before displaying the version the package. | +| `기호` | `'📦 '` | The symbol used before displaying the version the package. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `style` | `'bold 208'` | The style for the module. | | `display_private` | `false` | Enable displaying version for packages marked as private. | @@ -3009,15 +3140,15 @@ The `package` module is shown when the current directory is the repository for a ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v1.0.0` | The version of your package | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3042,7 +3173,7 @@ The `perl` module shows the currently installed version of [Perl](https://www.pe | ------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🐪 '` | The symbol used before displaying the version of Perl | +| `기호` | `'🐪 '` | The symbol used before displaying the version of Perl | | `detect_extensions` | `['pl', 'pm', 'pod']` | Which extensions should trigger this module. | | `detect_files` | `['Makefile.PL', 'Build.PL', 'cpanfile', 'cpanfile.snapshot', 'META.json', 'META.yml', '.perl-version']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3051,13 +3182,13 @@ The `perl` module shows the currently installed version of [Perl](https://www.pe ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | --------- | ------------------------------------ | | version | `v5.26.1` | The version of `perl` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3080,7 +3211,7 @@ The `php` module shows the currently installed version of [PHP](https://www.php. | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🐘 '` | The symbol used before displaying the version of PHP. | +| `기호` | `'🐘 '` | The symbol used before displaying the version of PHP. | | `detect_extensions` | `['php']` | Which extensions should trigger this module. | | `detect_files` | `['composer.json', '.php-version']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3089,15 +3220,15 @@ The `php` module shows the currently installed version of [PHP](https://www.php. ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v7.3.8` | The version of `php` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3114,7 +3245,7 @@ The `pijul_channel` module shows the active channel of the repo in your current | Option | Default | Description | | ------------------- | --------------------------------- | ------------------------------------------------------------------------------------ | -| `symbol` | `' '` | The symbol used before the pijul channel name of the repo in your current directory. | +| `기호` | `' '` | The symbol used before the pijul channel name of the repo in your current directory. | | `style` | `'bold purple'` | The style for the module. | | `format` | `'on [$symbol$channel]($style) '` | The format for the module. | | `truncation_length` | `2^63 - 1` | Truncates the pijul channel name to `N` graphemes | @@ -3127,7 +3258,7 @@ The `pulumi` module shows the current username, selected [Pulumi Stack](https:// ::: tip -By default the Pulumi version is not shown, since it takes an order of magnitude longer to load then most plugins (~70ms). If you still want to enable it, [follow the example shown below](#with-pulumi-version). +By default the Pulumi version is not shown, since it takes an order of magnitude longer to load then most plugins (~70ms). 그래도 활성화하려면, [아래에 있는 예시를 따라 하세요](#with-pulumi-version). ::: @@ -3142,24 +3273,24 @@ By default the module will be shown if any of the following conditions are met: | ---------------- | -------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($username@)$stack]($style) '` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `' '` | A format string shown before the Pulumi stack. | +| `기호` | `' '` | A format string shown before the Pulumi stack. | | `style` | `'bold 5'` | The style for the module. | | `search_upwards` | `true` | Enable discovery of pulumi config files in parent directories. | | `disabled` | `false` | Disables the `pulumi` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------- | ------------------------------------ | | version | `v0.12.24` | The version of `pulumi` | | stack | `dev` | The current Pulumi stack | | username | `alice` | The current Pulumi username | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 #### With Pulumi Version @@ -3192,7 +3323,7 @@ The `purescript` module shows the currently installed version of [PureScript](ht | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'<=> '` | The symbol used before displaying the version of PureScript. | +| `기호` | `'<=> '` | The symbol used before displaying the version of PureScript. | | `detect_extensions` | `['purs']` | Which extensions should trigger this module. | | `detect_files` | `['spago.dhall']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3201,15 +3332,15 @@ The `purescript` module shows the currently installed version of [PureScript](ht ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `0.13.5` | The version of `purescript` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3242,10 +3373,10 @@ By default the module will be shown if any of the following conditions are met: | -------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | | `format` | `'via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🐍 '` | A format string representing the symbol of Python | +| `기호` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3262,15 +3393,15 @@ The default values and order for `python_binary` was chosen to first identify th ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | ------------ | --------------- | ------------------------------------------ | | version | `'v3.8.1'` | The version of `python` | -| symbol | `'🐍 '` | Mirrors the value of option `symbol` | +| 기호 | `'🐍 '` | Mirrors the value of option `symbol` | | style | `'yellow bold'` | Mirrors the value of option `style` | | pyenv_prefix | `'pyenv '` | Mirrors the value of option `pyenv_prefix` | | virtualenv | `'venv'` | The current `virtualenv` name | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3325,7 +3456,7 @@ The `rlang` module shows the currently installed version of [R](https://www.r-pr | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'📐'` | A format string representing the symbol of R. | +| `기호` | `'📐'` | A format string representing the symbol of R. | | `style` | `'blue bold'` | The style for the module. | | `detect_extensions` | `['R', 'Rd', 'Rmd', 'Rproj', 'Rsx']` | Which extensions should trigger this module | | `detect_files` | `['.Rprofile']` | Which filenames should trigger this module | @@ -3334,13 +3465,13 @@ The `rlang` module shows the currently installed version of [R](https://www.r-pr ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | -------- | ------------- | ------------------------------------ | | version | `v4.0.5` | The version of `R` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style | `'blue bold'` | Mirrors the value of option `style` | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3362,7 +3493,7 @@ The `raku` module shows the currently installed version of [Raku](https://www.ra | ------------------- | ------------------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version-$vm_version )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🦋 '` | The symbol used before displaying the version of Raku | +| `기호` | `'🦋 '` | The symbol used before displaying the version of Raku | | `detect_extensions` | `['p6', 'pm6', 'pod6', 'raku', 'rakumod']` | Which extensions should trigger this module. | | `detect_files` | `['META6.json']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3371,14 +3502,14 @@ The `raku` module shows the currently installed version of [Raku](https://www.ra ### Variables -| Variable | Example | Description | -| ---------- | ------- | ------------------------------------ | -| version | `v6.d` | The version of `raku` | -| vm_version | `moar` | The version of VM `raku` is built on | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| ---------- | ------ | ------------------------------------ | +| version | `v6.d` | The version of `raku` | +| vm_version | `moar` | The version of VM `raku` is built on | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3399,7 +3530,7 @@ By default the `red` module shows the currently installed version of [Red](https | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🔺 '` | A format string representing the symbol of Red. | +| `기호` | `'🔺 '` | A format string representing the symbol of Red. | | `detect_extensions` | `['red']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3408,15 +3539,15 @@ By default the `red` module shows the currently installed version of [Red](https ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v2.5.1` | The version of `red` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3442,7 +3573,7 @@ Starship gets the current Ruby version by running `ruby -v`. | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'💎 '` | A format string representing the symbol of Ruby. | +| `기호` | `'💎 '` | A format string representing the symbol of Ruby. | | `detect_extensions` | `['rb']` | Which extensions should trigger this module. | | `detect_files` | `['Gemfile', '.ruby-version']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3452,15 +3583,15 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3482,7 +3613,7 @@ By default the `rust` module shows the currently installed version of [Rust](htt | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🦀 '` | A format string representing the symbol of Rust | +| `기호` | `'🦀 '` | A format string representing the symbol of Rust | | `detect_extensions` | `['rs']` | Which extensions should trigger this module. | | `detect_files` | `['Cargo.toml']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3491,17 +3622,17 @@ By default the `rust` module shows the currently installed version of [Rust](htt ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ----------------- | -------------------------------------------- | | version | `v1.43.0-nightly` | The version of `rustc` | | numver | `1.51.0` | The numeric component of the `rustc` version | | toolchain | `beta` | The toolchain version | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3527,21 +3658,21 @@ The `scala` module shows the currently installed version of [Scala](https://www. | `detect_extensions` | `['sbt', 'scala']` | Which extensions should trigger this module. | | `detect_files` | `['.scalaenv', '.sbtenv', 'build.sbt']` | Which filenames should trigger this module. | | `detect_folders` | `['.metals']` | Which folders should trigger this modules. | -| `symbol` | `'🆂 '` | A format string representing the symbol of Scala. | +| `기호` | `'🆂 '` | A format string representing the symbol of Scala. | | `style` | `'red dimmed'` | The style for the module. | | `disabled` | `false` | Disables the `scala` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `2.13.5` | The version of `scala` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3588,7 +3720,7 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y *: This variable can only be used as a part of a style string -### Examples +### 예시 ```toml # ~/.config/starship.toml @@ -3611,7 +3743,7 @@ The `shlvl` module shows the current [`SHLVL`](https://tldp.org/LDP/abs/html/int | --------------- | ---------------------------- | ------------------------------------------------------------------- | | `threshold` | `2` | Display threshold. | | `format` | `'[$symbol$shlvl]($style) '` | The format for the module. | -| `symbol` | `'↕️ '` | The symbol used to represent the `SHLVL`. | +| `기호` | `'↕️ '` | The symbol used to represent the `SHLVL`. | | `repeat` | `false` | Causes `symbol` to be repeated by the current `SHLVL` amount. | | `repeat_offset` | `0` | Decrements number of times `symbol` is repeated by the offset value | | `style` | `'bold yellow'` | The style for the module. | @@ -3619,15 +3751,15 @@ The `shlvl` module shows the current [`SHLVL`](https://tldp.org/LDP/abs/html/int ### Variables -| Variable | Example | Description | -| --------- | ------- | ------------------------------------ | -| shlvl | `3` | The current value of `SHLVL` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| --------- | --- | ------------------------------------ | +| shlvl | `3` | The current value of `SHLVL` | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3661,21 +3793,21 @@ The `singularity` module shows the current [Singularity](https://sylabs.io/singu | Option | Default | Description | | ---------- | -------------------------------- | ------------------------------------------------ | | `format` | `'[$symbol\[$env\]]($style) '` | The format for the module. | -| `symbol` | `''` | A format string displayed before the image name. | +| `기호` | `''` | A format string displayed before the image name. | | `style` | `'bold dimmed blue'` | The style for the module. | | `disabled` | `false` | Disables the `singularity` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ------------ | ------------------------------------ | | env | `centos.img` | The current Singularity image | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3694,27 +3826,27 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `기호` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v0.8.1` | The version of `solidity` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3731,22 +3863,22 @@ The `spack` module shows the current [Spack](https://spack.readthedocs.io/en/lat | Option | Default | Description | | ------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `truncation_length` | `1` | The number of directories the environment path should be truncated to. `0` means no truncation. Also see the [`directory`](#directory) module. | -| `symbol` | `'🅢 '` | The symbol used before the environment name. | +| `기호` | `'🅢 '` | The symbol used before the environment name. | | `style` | `'bold blue'` | The style for the module. | | `format` | `'via [$symbol$environment]($style) '` | The format for the module. | | `disabled` | `false` | Disables the `spack` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | ----------- | ------------ | ------------------------------------ | | environment | `astronauts` | The current spack environment | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3770,7 +3902,7 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | --------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | `format` | `'[$symbol$status]($style) '` | The format of the module | -| `symbol` | `'❌'` | The symbol displayed on program error | +| `기호` | `'❌'` | The symbol displayed on program error | | `success_symbol` | `''` | The symbol displayed on program success | | `not_executable_symbol` | `'🚫'` | The symbol displayed when file isn't executable | | `not_found_symbol` | `'🔍'` | The symbol displayed when the command can't be found | @@ -3787,7 +3919,7 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | -------------- | ------- | ------------------------------------------------------------------------------------------ | | status | `127` | The exit code of the last command | | hex_status | `0x7F` | The exit code of the last command in hex | @@ -3797,12 +3929,12 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | signal_name | `KILL` | Name of the signal corresponding to the exit code, only if signalled | | maybe_int | `7` | Contains the exit code number when no meaning has been found | | pipestatus | | Rendering of in pipeline programs' exit codes, this is only available in pipestatus_format | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3831,21 +3963,21 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | --------------- | ------------------------ | ------------------------------------------------------- | | `format` | `'[as $symbol]($style)'` | The format of the module | -| `symbol` | `'🧙 '` | The symbol displayed when credentials are cached | +| `기호` | `'🧙 '` | The symbol displayed when credentials are cached | | `style` | `'bold blue'` | The style for the module. | | `allow_windows` | `false` | Since windows has no default sudo, default is disabled. | | `disabled` | `true` | Disables the `sudo` module. | ### Variables -| Variable | Example | Description | -| --------- | ------- | ------------------------------------ | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| --------- | -- | ------------------------------------ | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3878,7 +4010,7 @@ By default the `swift` module shows the currently installed version of [Swift](h | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🐦 '` | A format string representing the symbol of Swift | +| `기호` | `'🐦 '` | A format string representing the symbol of Swift | | `detect_extensions` | `['swift']` | Which extensions should trigger this module. | | `detect_files` | `['Package.swift']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -3887,15 +4019,15 @@ By default the `swift` module shows the currently installed version of [Swift](h ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v5.2.4` | The version of `swift` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -3910,7 +4042,7 @@ The `terraform` module shows the currently selected [Terraform workspace](https: ::: tip -By default the Terraform version is not shown, since this is slow for current versions of Terraform when a lot of plugins are in use. If you still want to enable it, [follow the example shown below](#with-terraform-version). +By default the Terraform version is not shown, since this is slow for current versions of Terraform when a lot of plugins are in use. 그래도 활성화하려면, [아래에 있는 예시를 따라 하세요](#with-terraform-version). ::: @@ -3925,7 +4057,7 @@ By default the module will be shown if any of the following conditions are met: | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol$workspace]($style) '` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'💠'` | A format string shown before the terraform workspace. | +| `기호` | `'💠'` | A format string shown before the terraform workspace. | | `detect_extensions` | `['tf', 'tfplan', 'tfstate']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `['.terraform']` | Which folders should trigger this module. | @@ -3934,16 +4066,16 @@ By default the module will be shown if any of the following conditions are met: ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------- | ------------------------------------ | | version | `v0.12.24` | The version of `terraform` | | workspace | `default` | The current Terraform workspace | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 #### With Terraform Version @@ -3989,14 +4121,14 @@ If `use_12hr` is `true`, then `time_format` defaults to `'%r'`. Otherwise, it de ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------- | ----------------------------------- | | time | `13:08:10` | The current time. | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `기호` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | 예시 | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: @@ -4036,12 +4201,12 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | -------- | ------------ | ------------------------------------------------------------------------------------------- | | `style` | `'red bold'` | Mirrors the value of option `style_root` when root is logged in and `style_user` otherwise. | | `user` | `'matchai'` | The currently logged-in user ID. | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -4066,7 +4231,7 @@ The `vagrant` module shows the currently installed version of [Vagrant](https:// | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'⍱ '` | A format string representing the symbol of Vagrant. | +| `기호` | `'⍱ '` | A format string representing the symbol of Vagrant. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `['Vagrantfile']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -4075,15 +4240,15 @@ The `vagrant` module shows the currently installed version of [Vagrant](https:// ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ---------------- | ------------------------------------ | | version | `Vagrant 2.2.10` | The version of `Vagrant` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -4105,7 +4270,7 @@ The `vlang` module shows you your currently installed version of [V](https://vla | ------------------- | -------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'V '` | A format string representing the symbol of V | +| `기호` | `'V '` | A format string representing the symbol of V | | `detect_extensions` | `['v']` | Which extensions should trigger this module. | | `detect_files` | `['v.mod', 'vpkg.json', '.vpkg-lock.json' ]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | @@ -4114,13 +4279,13 @@ The `vlang` module shows you your currently installed version of [V](https://vla ### Variables -| Variable | Example | Description | -| --------- | ------- | ------------------------------------ | -| version | `v0.2` | The version of `v` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| --------- | ------ | ------------------------------------ | +| version | `v0.2` | The version of `v` | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -4136,22 +4301,22 @@ The `vcsh` module displays the current active [VCSH](https://github.com/RichiH/v | Option | Default | Description | | ---------- | -------------------------------- | ------------------------------------------------------ | -| `symbol` | `''` | The symbol used before displaying the repository name. | +| `기호` | `''` | The symbol used before displaying the repository name. | | `style` | `'bold yellow'` | The style for the module. | | `format` | `'vcsh [$symbol$repo]($style) '` | The format for the module. | | `disabled` | `false` | Disables the `vcsh` module. | ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | ------------------------------------------- | ------------------------------------ | | repo | `dotfiles` if in a VCSH repo named dotfiles | The active repository name | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | `black bold dimmed` | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -4172,7 +4337,7 @@ By default the `zig` module shows the currently installed version of [Zig](https | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'↯ '` | The symbol used before displaying the version of Zig. | +| `기호` | `'↯ '` | The symbol used before displaying the version of Zig. | | `style` | `'bold yellow'` | The style for the module. | | `disabled` | `false` | Disables the `zig` module. | | `detect_extensions` | `['zig']` | Which extensions should trigger this module. | @@ -4181,15 +4346,15 @@ By default the `zig` module shows the currently installed version of [Zig](https ### Variables -| Variable | Example | Description | +| Variable | 예시 | Description | | --------- | -------- | ------------------------------------ | | version | `v0.6.0` | The version of `zig` | -| symbol | | Mirrors the value of option `symbol` | +| 기호 | | Mirrors the value of option `symbol` | | style\* | | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string -### Example +### 예시 ```toml # ~/.config/starship.toml @@ -4248,7 +4413,7 @@ Format strings can also contain shell specific prompt sequences, e.g. [Bash](htt | `detect_files` | `[]` | The files that will be searched in the working directory for a match. | | `detect_folders` | `[]` | The directories that will be searched in the working directory for a match. | | `detect_extensions` | `[]` | The extensions that will be searched in the working directory for a match. | -| `symbol` | `''` | The symbol used before displaying the command output. | +| `기호` | `''` | The symbol used before displaying the command output. | | `style` | `'bold green'` | The style for the module. | | `format` | `'[$symbol($output )]($style)'` | The format for the module. | | `disabled` | `false` | Disables this `custom` module. | @@ -4261,7 +4426,7 @@ Format strings can also contain shell specific prompt sequences, e.g. [Bash](htt | Variable | Description | | --------- | -------------------------------------- | | output | The output of shell command in `shell` | -| symbol | Mirrors the value of option `symbol` | +| 기호 | Mirrors the value of option `symbol` | | style\* | Mirrors the value of option `style` | *: This variable can only be used as a part of a style string @@ -4295,7 +4460,7 @@ Automatic detection of shells and proper parameters addition are currently imple ::: -### Example +### 예시 ```toml # ~/.config/starship.toml diff --git a/docs/ko-KR/faq/README.md b/docs/ko-KR/faq/README.md index 41bb2d39..1cd79ec3 100644 --- a/docs/ko-KR/faq/README.md +++ b/docs/ko-KR/faq/README.md @@ -1,14 +1,14 @@ -# Frequently Asked Questions +# 자주 묻는 질문 -## What is the configuration used in the demo GIF? +## 데모 GIF에는 어떤 구성을 사용했나요? -- **Terminal Emulator**: [iTerm2](https://iterm2.com/) - - **Theme**: Minimal - - **Color Scheme**: [Snazzy](https://github.com/sindresorhus/iterm2-snazzy) - - **Font**: [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) -- **Shell**: [Fish Shell](https://fishshell.com/) - - **Configuration**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish) - - **Prompt**: [Starship](https://starship.rs/) +- **터미널 에뮬레이터**: [iTerm2](https://iterm2.com/) + - **테마**: Minimal + - **배색**: [Snazzy](https://github.com/sindresorhus/iterm2-snazzy) + - **폰트**: [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) +- **셸**: [Fish Shell](https://fishshell.com/) + - **구성**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish) + - **프롬프트**: [Starship](https://starship.rs/) ## How do I get command completion as shown in the demo GIF? @@ -40,7 +40,7 @@ PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)" The [Bash implementation](https://github.com/starship/starship/blob/master/src/init/starship.bash) built into Starship is slightly more complex to allow for advanced features like the [Command Duration module](https://starship.rs/config/#command-duration) and to ensure that Starship is compatible with pre-installed Bash configurations. -For a list of all flags accepted by `starship prompt`, use the following command: +`starship 프롬프트`에서 지원하는 모든 플래그 값을 보려면 아래 명령어를 사용하세요: ```sh starship prompt --help @@ -48,19 +48,19 @@ starship prompt --help The prompt will use as much context as is provided, but no flags are "required". -## How do I run Starship on Linux distributions with older versions of glibc? +## 오래된 버전의 glibc가 있는 Linux 배포판에서 Starship을 어떻게 실행하나요? -If you get an error like "_version 'GLIBC_2.18' not found (required by starship)_" when using the prebuilt binary (for example, on CentOS 6 or 7), you can use a binary compiled with `musl` instead of `glibc`: +미리 빌드된 바이너리를 실행할 때 (예를 들어 CentOS 6 혹은 7에서) "_version 'GLIBC_2.18' not found (required by starship)_" 같은 오류가 보인다면, `glibc` 대신 `musl`로 컴파일된 바이너리 파일을 사용하세요. ```sh curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ``` -## Why do I see `Executing command "..." timed out.` warnings? +## 왜 `Executing command "..." timed out.` 경고가 뜨나요? Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. -## I see symbols I don't understand or expect, what do they mean? +## 이해할 수 없거나 예상치 못한 기호가 보이는데 무슨 뜻인가요? If you see symbols that you don't recognise you can use `starship explain` to explain the currently showing modules. @@ -105,18 +105,18 @@ The first line should produce a [snake emoji](https://emojipedia.org/snake/), wh If either symbol fails to display correctly, your system is still misconfigured. Unfortunately, getting font configuration correct is sometimes difficult. Users on the Discord may be able to help. If both symbols display correctly, but you still don't see them in starship, [file a bug report!](https://github.com/starship/starship/issues/new/choose) -## How do I uninstall Starship? +## Starship을 어떻게 삭제하나요? -Starship is just as easy to uninstall as it is to install in the first place. +Starship은 처음 설치하는 것만큼이나 쉽게 제거할 수 있습니다. -1. Remove any lines in your shell config (e.g. `~/.bashrc`) used to initialize Starship. -1. Delete the Starship binary. +1. 셸 설정 파일 (예시: `~/.bashrc`) 에서 Starship 초기화에 사용되는 모든 줄을 제거하세요. +1. Starship 바이너리 파일을 제거하세요. -If Starship was installed using a package manager, please refer to their docs for uninstallation instructions. +Starship을 패키지 매니저로 설치하였다면 해당 패키지 매니저의 제거 지침 문서를 참조해 주세요. -If Starship was installed using the install script, the following command will delete the binary: +Starship을 설치 스크립트로 설치하였다면 바이너리 파일 제거를 위해 아래 명령어를 실행하세요: ```sh -# Locate and delete the starship binary +# starship 바이너리 파일을 찾고 제거합니다. sh -c 'rm "$(command -v 'starship')"' ``` diff --git a/docs/ko-KR/guide/README.md b/docs/ko-KR/guide/README.md index 4fa27edd..374f9117 100644 --- a/docs/ko-KR/guide/README.md +++ b/docs/ko-KR/guide/README.md @@ -2,7 +2,7 @@ Starship – Cross-shell prompt

@@ -30,7 +30,12 @@ 트위터에서 @StarshipPrompt를 팔로우 하세요 + Stand With Ukraine

@@ -147,25 +152,23 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

Starship with iTerm2 and the Snazzy theme -**간결하고 화끈하게 빠르며 무제한으로 커스터마이징이 가능한 프롬프트. 어떤 쉘에서든 사용할 수 있습니다!** +**아무 셸에나 적용할 수 있는 간결하고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다!** -- ** Fast:** 빨라요 – _엄청 엄청_ 빠릅니다! 🚀 -- ** Customizable:** 프롬프트의 모든 측면을 커스텀 가능합니다. -- **Universal:** 어떤 쉘 위에서도, 어떤 운영체제 위에서도 동작합니다. -- **Intelligent:** 관련 정보를 한눈에 보여줍니다. -- **Feature rich:** 원하는 모든 도구를 지원합니다. -- **Easy:** 빠른 설치 - 몇 분 안에 사용할 수 있습니다. +- ** 빠름:** 빠릅니다. – _정말_ 빠릅니다. 🚀 +- ** 커스텀 가능:** 프롬프트의 모든 부분을 커스텀 할 수 있습니다. +- **범용적:** 어떤 셸 위에서도, 어떤 운영체제 위에서도 동작합니다. +- **지능적:** 관련 정보를 한눈에 보여줍니다. +- **다기능:** 원하는 모든 도구를 지원합니다. +- **쉬움:** 빠른 설치 - 몇 분만 투자하면 바로 사용할 수 있습니다.

Starship 문서 보기  ▶ @@ -188,7 +191,7 @@ 다음 패키지 관리자 중 하나를 사용해 Starship 을 설치하세요: -| Repository | Instructions | +| 리포지토리 | 설명 | | --------------------------------------------------------------------------------- | ---------------------- | | [Termux](https://github.com/termux/termux-packages/tree/master/packages/starship) | `pkg install starship` | @@ -199,11 +202,11 @@ 다음 패키지 관리자 중 하나를 사용해 Starship 을 설치하세요: -| Distribution | Repository | Instructions | -| ------------ | -------------------------------------------------------- | --------------------------------- | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | -| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` | +| 배포판 | 리포지토리 | 설명 | +| -------- | -------------------------------------------------------- | --------------------------------- | +| **_전체_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | +| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` |

@@ -218,18 +221,19 @@ curl -sS https://starship.rs/install.sh | sh 다음의 패키지 관리자를 사용해서 Starship을 설치할 수도 있습니다. -| Distribution | Repository | Instructions | -| ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| _Any_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | -| _Any_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | -| Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | -| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | -| CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
`dnf install starship` | -| Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | -| Manjaro | | `pacman -S starship` | -| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | -| Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` | +| 배포판 | 리포지토리 | 설명 | +| ------------------ | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| **_전체_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| _전체_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| _전체_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | +| Alpine Linux 3.13+ | [Alpine Linux 패키지](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | +| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | +| CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
`dnf install starship` | +| Gentoo | [Gentoo 패키지](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | +| Manjaro | | `pacman -S starship` | +| NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | +| Void Linux | [Void Linux 패키지](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
@@ -244,7 +248,7 @@ curl -sS https://starship.rs/install.sh | sh 다음의 패키지 관리자를 사용해서 Starship을 설치할 수도 있습니다. -| Repository | Instructions | +| 리포지토리 | 설명 | | -------------------------------------------------------- | --------------------------------------- | | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | @@ -256,11 +260,11 @@ curl -sS https://starship.rs/install.sh | sh
Windows -Install the latest version for your system with the MSI-installers from the [releases section](https://github.com/starship/starship/releases/latest). +[releases 섹션](https://github.com/starship/starship/releases/latest)에서 MSI 인스톨러를 받아 실행하여 시스템에 맞는 최신 버전을 설치하세요. 다음 패키지 관리자 중 하나를 사용해 Starship 을 설치하세요: -| Repository | Instructions | +| 리포지토리 | 설명 | | -------------------------------------------------------------------------------------------- | --------------------------------------- | | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | | [Chocolatey](https://community.chocolatey.org/packages/starship) | `choco install starship` | @@ -270,9 +274,9 @@ Install the latest version for your system with the MSI-installers from the [rel
-### 2단계. Set up your shell to use Starship +### 2단계. 셸에 Starship 적용하기 -쉘에 Starship 초기 설정을 합니다. 아래의 리스트 중에 해당하는 것을 고르세요: +Starship 적용을 위해 셸을 구성해야 합니다. 아래의 리스트 중에 해당하는 것을 고르세요:
Bash @@ -288,7 +292,7 @@ eval "$(starship init bash)"
Cmd -Cmd를 이용하려면 [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) 를 사용해야 합니다. Create a file at this path `%LocalAppData%\clink\starship.lua` with the following contents: +Cmd를 이용하려면 [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) 를 사용해야 합니다. `%LocalAppData%\clink\starship.lua` 경로에 파일을 만들고 아래 내용으로 채우세요: ```lua load(io.popen('starship init cmd'):read("*a"))() @@ -305,7 +309,7 @@ load(io.popen('starship init cmd'):read("*a"))() eval (starship init elvish) ``` -Note: Only Elvish v0.18+ is supported +알림: Elvish v0.18 버전 이상에서만 지원됩니다.
@@ -334,20 +338,20 @@ eval $(starship init ion)
Nushell -Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): +다음 내용을 Nushell env 파일 (찾으려면 Nushell에서 `$nu.env-path` 실행) 마지막 부분에 추가하세요: ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` -And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`): +다음 내용을 Nushell 설정 파일 (찾으려면 Nushell에서 `$nu.config-path` 실행) 마지막 부분에 추가하세요: ```sh use ~/.cache/starship/init.nu ``` -Note: Only Nushell v0.78+ is supported +알림: Nushell v0.78 버전 이상에서만 지원됩니다.
@@ -409,25 +413,25 @@ Starship을 추가로 커스터마이징 하고싶다면: 우리는 언제나 **기술 수준에 관계없이** 기여자를 찾고 있습니다! 프로젝트에 참여하고자 한다면, [good first issue](https://github.com/starship/starship/labels/🌱%20good%20first%20issue) 를 보내보세요. -If you are fluent in a non-English language, we greatly appreciate any help keeping our docs translated and up-to-date in other languages. 번역에 도움을 주고자 한다면, [Starship Crowdin](https://translate.starship.rs/) 에서 기여할 수 있습니다. +영어 이외의 언어에 유창하시다면, 저희 문서를 다른 언어로 최신화하는 데 도움을 주시면 대단히 감사하겠습니다. 번역에 도움을 주고자 한다면, [Starship Crowdin](https://translate.starship.rs/) 에서 기여할 수 있습니다. -Starship 에 기여하는데 관심이 있다면, [Contributing Guide](https://github.com/starship/starship/blob/master/CONTRIBUTING.md) 를 한 번 살펴봐 주세요 그리고 부담갖지 말고 [Discord 서버](https://discord.gg/8Jzqu3T) 에 들러 인사 한 마디 남겨보세요 👋 +Starship에 기여하는데 관심이 있으시다면, [기여 가이드](https://github.com/starship/starship/blob/master/CONTRIBUTING.md)를 읽어주세요. 그리고 부담갖지 말고 [Discord 서버](https://discord.gg/8Jzqu3T) 에 들러 인사 한 마디 남겨보세요 👋 -## 💭 Inspired By +## 💭 영감받은 곳 Starship 을 만드는 데에 영감이 되었던 이전 작업들도 살펴보세요. 🙏 -- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – A ZSH prompt for astronauts. +- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – 우주 비행사를 위한 ZSH 프롬프트. -- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-shell robbyrussell theme written in JavaScript. +- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – JavaScript로 작성된 크로스-쉘 robbyrussell 테마. -- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons. +- **[reujab/silver](https://github.com/reujab/silver)** – 아이콘이 있는 커스텀 가능한 powerline 계열 크로스-쉘 프롬프트. -## ❤️ Sponsors +## ❤️ 스폰서 -Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. +이 [프로젝트를 후원](https://github.com/sponsors/starship)하여 프로젝트를 지원해 주세요. 여러분의 웹사이트로 이동하는 링크가 걸린 이름 혹은 로고가 여기에 걸립니다. -**Supporter Tier** +**후원자 티어** - [Appwrite](https://appwrite.io/) @@ -438,4 +442,4 @@ Support this project by [becoming a sponsor](https://github.com/sponsors/starshi ## 📝라이선스 -Copyright © 2019-present, [Starship Contributors](https://github.com/starship/starship/graphs/contributors).
This project is [ISC](https://github.com/starship/starship/blob/master/LICENSE) licensed. +Copyright © 2019-현재, [Starship 기여자](https://github.com/starship/starship/graphs/contributors).
이 프로젝트는 [ISC](https://github.com/starship/starship/blob/master/LICENSE) 라이선스입니다. diff --git a/docs/ko-KR/installing/README.md b/docs/ko-KR/installing/README.md index bf2e01ba..e25fffbd 100644 --- a/docs/ko-KR/installing/README.md +++ b/docs/ko-KR/installing/README.md @@ -63,7 +63,7 @@ Enable the `programs.starship` module in your `home.nix` file, and add your sett { programs.starship = { enable = true; - # Configuration written to ~/.config/starship.toml + # ~/.config/starship.toml에 작성된 설정 settings = { # add_newline = false; diff --git a/docs/ko-KR/migrating-to-0.45.0/README.md b/docs/ko-KR/migrating-to-0.45.0/README.md index 18661c3b..3886acc5 100644 --- a/docs/ko-KR/migrating-to-0.45.0/README.md +++ b/docs/ko-KR/migrating-to-0.45.0/README.md @@ -80,7 +80,7 @@ format = "took [$duration]($style) " | Removed Property | Replacement | | ----------------------- | ---------------- | -| `symbol` | `success_symbol` | +| `기호` | `success_symbol` | | `use_symbol_for_status` | `error_symbol` | | `style_success` | `success_symbol` | | `style_failure` | `error_symbol` | diff --git a/docs/ko-KR/presets/README.md b/docs/ko-KR/presets/README.md index 3903bc17..7d41e37c 100644 --- a/docs/ko-KR/presets/README.md +++ b/docs/ko-KR/presets/README.md @@ -1,14 +1,14 @@ -# Presets +# 프리셋 -Here is a collection of community-submitted configuration presets for Starship. If you have a preset to share, please [submit a PR](https://github.com/starship/starship/edit/master/docs/presets/README.md) updating this file! 😊 +커뮤니티가 제공한 Starship 설정 프리셋의 모음집입니다. 공유할 프리셋이 있다면 이 파일을 [수정하는 PR을 제출](https://github.com/starship/starship/edit/master/docs/presets/README.md)해 주세요! 😊 -To get details on how to use a preset, simply click on the image. +프리셋 사용 방법에 대한 자세한 내용을 보려면 이미지를 클릭하기만 하면 됩니다. -## [Nerd Font Symbols](./nerd-font.md) +## [Nerd Font 기호](./nerd-font.md) -This preset changes the symbols for each module to use Nerd Font symbols. +이 프리셋은 각 모듈의 기호가 Nerd Font 기호를 사용하도록 변경합니다. -[![Screenshot of Nerd Font Symbols preset](/presets/img/nerd-font-symbols.png "Click to view Nerd Font Symbols preset")](./nerd-font) +[![Nerd Font 기호 프리셋 스크린샷](/presets/img/nerd-font-symbols.png "Click to view Nerd Font Symbols preset")](./nerd-font) ## [No Nerd Fonts](./no-nerd-font.md) @@ -16,11 +16,11 @@ This preset changes the symbols for several modules so that no Nerd Font symbols ::: tip -This preset will become the default preset [in a future release of starship](https://github.com/starship/starship/pull/3544). +이 프리셋은 [starship의 추후 배포](https://github.com/starship/starship/pull/3544)에서 기본 프리셋이 될 예정입니다. ::: -[Click to view No Nerd Font preset](./no-nerd-font) +[클릭하여 No Nerd Font 프리셋 보기](./no-nerd-font) ## [Bracketed Segments](./bracketed-segments.md) @@ -40,17 +40,17 @@ This preset hides the version of language runtimes. If you work in containers or [![Screenshot of Hide Runtime Versions preset](/presets/img/no-runtime-versions.png "Click to view No Runtime Versions preset")](./no-runtimes) -## [No Empty Icons](./no-empty-icons.md) +## [빈 아이콘 제거](./no-empty-icons.md) -This preset does not show icons if the toolset is not found. +이 프리셋은 툴셋을 찾을 수 없을 때 아이콘을 표시하지 않습니다. [![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png "Click to view No Runtime Versions preset")](./no-empty-icons.md) ## [Pure Prompt](./pure-preset.md) -This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure). +이 프리셋은 [Pure](https://github.com/sindresorhus/pure)의 모습과 동작을 재현합니다. -[![Screenshot of Pure preset](/presets/img/pure-preset.png "Click to view Pure Prompt preset")](./pure-preset) +[![Pure 프리셋 스크린샷](/presets/img/pure-preset.png "Click to view Pure Prompt preset")](./pure-preset) ## [Pastel Powerline](./pastel-powerline.md) @@ -60,6 +60,12 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m ## [Tokyo Night](./tokyo-night.md) -This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +이 프리셋은 [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme)에서 영감을 받았습니다. -[![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) +[![Tokyo Night 프리셋 스크린샷](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +이 프리셋은 [Pastel Powerline](./pastel-powerline.md) 및 [Tokyo Night](./tokyo-night.md)에서 강하게 영감을 받았습니다. + +[![Gruvbox Rainbow 프리셋 스크린샷](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/ko-KR/presets/bracketed-segments.md b/docs/ko-KR/presets/bracketed-segments.md index 982afb20..8d6430df 100644 --- a/docs/ko-KR/presets/bracketed-segments.md +++ b/docs/ko-KR/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[프리셋으로 돌아가기](./README.md#bracketed-segments) # Bracketed Segments Preset @@ -6,12 +6,12 @@ This preset changes the format of all the built-in modules to show their segment ![Screenshot of Bracketed Segments preset](/presets/img/bracketed-segments.png) -### Configuration +### 설정 ```sh starship preset bracketed-segments -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/bracketed-segments.toml) +[클릭하여 TOML 다운로드](/presets/toml/bracketed-segments.toml) <<< @/.vuepress/public/presets/toml/bracketed-segments.toml diff --git a/docs/ko-KR/presets/gruvbox-rainbow.md b/docs/ko-KR/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..e7b246a1 --- /dev/null +++ b/docs/ko-KR/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[프리셋으로 돌아가기](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow 프리셋 + +이 프리셋은 [Pastel Powerline](./pastel-powerline.md) 및 [Tokyo Night](./tokyo-night.md)에서 강하게 영감을 받았습니다. + +![Gruvbox Rainbow 프리셋 스크린샷](/presets/img/gruvbox-rainbow.png) + +### 준비 사항 + +- 터미널에 [Nerd Font](https://www.nerdfonts.com/) 설치 및 활성화 + +### 설정 + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[클릭하여 TOML 다운로드](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ko-KR/presets/jetpack.md b/docs/ko-KR/presets/jetpack.md new file mode 100644 index 00000000..ada3e095 --- /dev/null +++ b/docs/ko-KR/presets/jetpack.md @@ -0,0 +1,24 @@ +[프리셋으로 돌아가기](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### 설정 + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[클릭하여 TOML 다운로드](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/ko-KR/presets/nerd-font.md b/docs/ko-KR/presets/nerd-font.md index 6df40328..f4c6c6ea 100644 --- a/docs/ko-KR/presets/nerd-font.md +++ b/docs/ko-KR/presets/nerd-font.md @@ -1,21 +1,21 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[프리셋으로 돌아가기](./README.md#nerd-font-symbols) -# Nerd Font Symbols Preset +# Nerd Font 기호 프리셋 -This preset changes the symbols for each module to use Nerd Font symbols. +이 프리셋은 각 모듈의 기호가 Nerd Font 기호를 사용하도록 변경합니다. -![Screenshot of Nerd Font Symbols preset](/presets/img/nerd-font-symbols.png) +![Nerd Font 기호 프리셋 스크린샷](/presets/img/nerd-font-symbols.png) -### 준비 사항 +### 필요 사항 -- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Fira Code Nerd Font) +- 터미널에 [Nerd Font](https://www.nerdfonts.com/) 설치 및 활성화 (예시에서는 Fira Code Nerd Font를 사용합니다.) -### Configuration +### 설정 ```sh starship preset nerd-font-symbols -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/nerd-font-symbols.toml) +[클릭하여 TOML 다운로드](/presets/toml/nerd-font-symbols.toml) <<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ko-KR/presets/no-empty-icons.md b/docs/ko-KR/presets/no-empty-icons.md index aa4a211f..c3f42973 100644 --- a/docs/ko-KR/presets/no-empty-icons.md +++ b/docs/ko-KR/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[프리셋으로 돌아가기](./README.md#no-empty-icons) # No Empty Icons Preset @@ -6,12 +6,12 @@ If toolset files are identified the toolset icon is displayed. If the toolset is ![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png) -### Configuration +### 설정 ```sh starship preset no-empty-icons -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/no-empty-icons.toml) +[클릭하여 TOML 다운로드](/presets/toml/no-empty-icons.toml) <<< @/.vuepress/public/presets/toml/no-empty-icons.toml diff --git a/docs/ko-KR/presets/no-nerd-font.md b/docs/ko-KR/presets/no-nerd-font.md index a70e85e7..6f73477e 100644 --- a/docs/ko-KR/presets/no-nerd-font.md +++ b/docs/ko-KR/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[프리셋으로 돌아가기](./README.md#no-nerd-fonts) # No Nerd Fonts Preset @@ -8,12 +8,12 @@ This means that even without a Nerd Font installed, you should be able to view a This preset will become the default preset in a future release of starship. -### Configuration +### 설정 ```sh starship preset no-nerd-font -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/no-nerd-font.toml) +[클릭하여 TOML 다운로드](/presets/toml/no-nerd-font.toml) <<< @/.vuepress/public/presets/toml/no-nerd-font.toml diff --git a/docs/ko-KR/presets/no-runtimes.md b/docs/ko-KR/presets/no-runtimes.md index c0805d11..767a45f0 100644 --- a/docs/ko-KR/presets/no-runtimes.md +++ b/docs/ko-KR/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[프리셋으로 돌아가기](./README.md#no-runtime-versions) # No Runtime Versions Preset @@ -6,12 +6,12 @@ This preset hides the version of language runtimes. If you work in containers or ![Screenshot of Hide Runtime Versions preset](/presets/img/no-runtime-versions.png) -### Configuration +### 설정 ```sh starship preset no-runtime-versions -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/no-runtime-versions.toml) +[클릭하여 TOML 다운로드](/presets/toml/no-runtime-versions.toml) <<< @/.vuepress/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ko-KR/presets/pastel-powerline.md b/docs/ko-KR/presets/pastel-powerline.md index 38f7438d..477afea2 100644 --- a/docs/ko-KR/presets/pastel-powerline.md +++ b/docs/ko-KR/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[프리셋으로 돌아가기](./README.md#pastel-powerline) # Pastel Powerline Preset @@ -10,12 +10,12 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m - A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Caskaydia Cove Nerd Font) -### Configuration +### 설정 ```sh starship preset pastel-powerline -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/pastel-powerline.toml) +[클릭하여 TOML 다운로드](/presets/toml/pastel-powerline.toml) <<< @/.vuepress/public/presets/toml/pastel-powerline.toml diff --git a/docs/ko-KR/presets/plain-text.md b/docs/ko-KR/presets/plain-text.md index 1e17b4bc..e2d1087f 100644 --- a/docs/ko-KR/presets/plain-text.md +++ b/docs/ko-KR/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[프리셋으로 돌아가기](./README.md#plain-text-symbols) ## Plain Text Symbols Preset @@ -6,12 +6,12 @@ This preset changes the symbols for each module into plain text. Great if you do ![Screenshot of Plain Text Symbols preset](/presets/img/plain-text-symbols.png) -### Configuration +### 설정 ```sh starship preset plain-text-symbols -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/plain-text-symbols.toml) +[클릭하여 TOML 다운로드](/presets/toml/plain-text-symbols.toml) <<< @/.vuepress/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ko-KR/presets/pure-preset.md b/docs/ko-KR/presets/pure-preset.md index b75a0056..fec4b572 100644 --- a/docs/ko-KR/presets/pure-preset.md +++ b/docs/ko-KR/presets/pure-preset.md @@ -1,17 +1,17 @@ -[Return to Presets](./README.md#pure) +[프리셋으로 돌아가기](./README.md#pure) -# Pure Preset +# Pure 프리셋 -This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure). +이 프리셋은 [Pure](https://github.com/sindresorhus/pure)의 모습과 동작을 재현합니다. -![Screenshot of Pure preset](/presets/img/pure-preset.png) +![Pure 프리셋 스크린샷](/presets/img/pure-preset.png) -### Configuration +### 설정 ```sh starship preset pure-preset -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/pure-preset.toml) +[클릭하여 TOML 다운로드](/presets/toml/pure-preset.toml) <<< @/.vuepress/public/presets/toml/pure-preset.toml diff --git a/docs/ko-KR/presets/tokyo-night.md b/docs/ko-KR/presets/tokyo-night.md index 38702598..fb3a3a3a 100644 --- a/docs/ko-KR/presets/tokyo-night.md +++ b/docs/ko-KR/presets/tokyo-night.md @@ -1,21 +1,21 @@ -[Return to Presets](./README.md#pastel-powerline) +[프리셋으로 돌아가기](./README.md#pastel-powerline) -# Tokyo Night Preset +# Tokyo Night 프리셋 -This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +이 프리셋은 [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme)에서 영감을 받았습니다. -![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png) +![Tokyo Night 프리셋 스크린샷](/presets/img/tokyo-night.png) ### 준비 사항 -- 터미널에 [Nerd Font](https://www.nerdfonts.com/)가 설치되어 있고 사용 가능해야 합니다 +- 터미널에 [Nerd Font](https://www.nerdfonts.com/) 설치 및 활성화 -### Configuration +### 설정 ```sh starship preset tokyo-night -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/tokyo-night.toml) +[클릭하여 TOML 다운로드](/presets/toml/tokyo-night.toml) <<< @/.vuepress/public/presets/toml/tokyo-night.toml diff --git a/docs/nl-NL/config/README.md b/docs/nl-NL/config/README.md index 396fbb2c..dccdabf2 100644 --- a/docs/nl-NL/config/README.md +++ b/docs/nl-NL/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Example @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Default | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | Default | Description | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Default | Description | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Example | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/nl-NL/guide/README.md b/docs/nl-NL/guide/README.md index ec9b9d83..c4a18ddb 100644 --- a/docs/nl-NL/guide/README.md +++ b/docs/nl-NL/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Volg @StarshipPrompt op Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/nl-NL/presets/README.md b/docs/nl-NL/presets/README.md index 3903bc17..2e332ad1 100644 --- a/docs/nl-NL/presets/README.md +++ b/docs/nl-NL/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/nl-NL/presets/gruvbox-rainbow.md b/docs/nl-NL/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..8f342a04 --- /dev/null +++ b/docs/nl-NL/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Benodigdheden + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### Configuration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/nl-NL/presets/jetpack.md b/docs/nl-NL/presets/jetpack.md new file mode 100644 index 00000000..0f52a9a9 --- /dev/null +++ b/docs/nl-NL/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/no-NO/config/README.md b/docs/no-NO/config/README.md index 396fbb2c..dccdabf2 100644 --- a/docs/no-NO/config/README.md +++ b/docs/no-NO/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Example @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Default | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | Default | Description | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Default | Description | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Example | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/no-NO/guide/README.md b/docs/no-NO/guide/README.md index f74b800c..8257069b 100644 --- a/docs/no-NO/guide/README.md +++ b/docs/no-NO/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Følg @StarshipPrompt på Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/no-NO/presets/README.md b/docs/no-NO/presets/README.md index 3903bc17..2e332ad1 100644 --- a/docs/no-NO/presets/README.md +++ b/docs/no-NO/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/no-NO/presets/gruvbox-rainbow.md b/docs/no-NO/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..cfe75913 --- /dev/null +++ b/docs/no-NO/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Nødvendig forutsetninger + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### Configuration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/no-NO/presets/jetpack.md b/docs/no-NO/presets/jetpack.md new file mode 100644 index 00000000..0f52a9a9 --- /dev/null +++ b/docs/no-NO/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/pl-PL/config/README.md b/docs/pl-PL/config/README.md index 10c03d70..a39cc9bb 100644 --- a/docs/pl-PL/config/README.md +++ b/docs/pl-PL/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: porada + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Example @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Zmienne | Example | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Zmienne | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Default | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | Default | Description | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: porada @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Default | Description | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Zmienne | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Zmienne | Example | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Zmienne | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/pl-PL/faq/README.md b/docs/pl-PL/faq/README.md index f88a28a5..4df19d6b 100644 --- a/docs/pl-PL/faq/README.md +++ b/docs/pl-PL/faq/README.md @@ -21,7 +21,7 @@ Yes, they can both be used to disable modules in the prompt. If all you plan to - Disabling modules is more explicit than omitting them from the top level `format` - Newly created modules will be added to the prompt as Starship is updated -## Dokumentacja stwierdza że Starship jest wieloplatformowy. Dlaczego moja preferowana powłoka nie jest obsługiwana? +## Dokumentacja twierdzi, że Starship jest wieloplatformowy. Dlaczego moja preferowana powłoka nie jest obsługiwana? The way Starship is built, it should be possible to add support for virtually any shell. The starship binary is stateless and shell agnostic, so as long as your shell supports prompt customization and shell expansion, Starship can be used. diff --git a/docs/pl-PL/guide/README.md b/docs/pl-PL/guide/README.md index 0d5c7221..89a4d1b5 100644 --- a/docs/pl-PL/guide/README.md +++ b/docs/pl-PL/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Śledź @StarshipPrompt na Twitterze" /> + Wspieraj Ukrainę

@@ -147,8 +152,6 @@ />

-[![SWUbaner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/pl-PL/presets/README.md b/docs/pl-PL/presets/README.md index f72d797b..5bb82d8e 100644 --- a/docs/pl-PL/presets/README.md +++ b/docs/pl-PL/presets/README.md @@ -63,3 +63,9 @@ Ten zestaw ustawień jest inspirowany [M365Princess](https://github.com/JanDeDo Ten zestaw ustawień jest inspirowany [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Zrzut ekranu ustawień Tokio Night](/presets/img/tokyo-night.png "Kliknij, aby wyświetlić ustawienia Tokio Night")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +Zestaw mocno inspirowany przez [Pastel Powerline](./pastel-powerline.md) i [Tokyo Night](./tokyo-night.md). + +[![Zrzut ekranu ustawień Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Kliknij, aby wyświetlić ustawienia Gruvbox Rainbow")](./gruvbox-rainbow) diff --git a/docs/pl-PL/presets/gruvbox-rainbow.md b/docs/pl-PL/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..8e3abe06 --- /dev/null +++ b/docs/pl-PL/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Powrót do ustawień predefiniowanych](./README.md#gruvbox-rainbow) + +# Ustawienia Gruvbox Rainbow + +Zestaw mocno inspirowany przez [Pastel Powerline](./pastel-powerline.md) i [Tokyo Night](./tokyo-night.md). + +![Zrzut ekranu ustawień Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png) + +### Wymagania wstępne + +- Czcionka typu [Nerd Font](https://www.nerdfonts.com/) zainstalowana i włączona w twoim terminalu + +### Konfiguracja + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Kliknij, aby pobrać TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/pl-PL/presets/jetpack.md b/docs/pl-PL/presets/jetpack.md new file mode 100644 index 00000000..9206a9dc --- /dev/null +++ b/docs/pl-PL/presets/jetpack.md @@ -0,0 +1,24 @@ +[Powrót do ustawień predefiniowanych](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Wymaganie wstępne + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Konfiguracja + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Kliknij, aby pobrać TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/pt-BR/config/README.md b/docs/pt-BR/config/README.md index 897722b0..c27f521a 100644 --- a/docs/pt-BR/config/README.md +++ b/docs/pt-BR/config/README.md @@ -206,6 +206,13 @@ Esta é a lista de opções de configuração em todo o prompt. | `add_newline` | `true` | Insere linha vazia entre os prompts do shell. | | `palette` | `''` | Define qual a paleta de cores de `palettes` será usada. | | `palettes` | `{}` | Coleção de paletas de cores que atribuem [cores](/advanced-config/#style-strings) aos nomes definidos pelo usuário. Note que paletas de cores não podem referir-se a suas próprias definições de cores. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Exemplo @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ Quando usar [AWSume](https://awsu.me) o perfil é lido da variável `AWSUME_PROF When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Opções | Opções | Padrão | Descrição | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Tabela de aleases de regiões a serem exibidas, além do nome da AWS. | | `profile_aliases` | `{}` | Tabela de apelidos de perfil a serem exibidos além do nome da AWS. | | `style` | `'bold yellow'` | O estilo do módulo. | -| `expiration_symbol` | `X` | O simbolo exibido quando as credenciais temporárias estão expiradas. | +| `expiration_symbol` | `'X'` | O simbolo exibido quando as credenciais temporárias estão expiradas. | | `disabled` | `false` | Desabilita o módulo `AWS`. | | `force_display` | `false` | Se `true` exibe as informações mesmo que `credentials`, `credential_process` ou `sso_start_url` não tenham sido configurados. | @@ -423,7 +435,7 @@ Enterprise_Naming_Scheme-voidstars = 'void**' ## Azure -O módulo `azure` exibe a assinatura Azure atual. This is based on showing the name of the default subscription or the username, as defined in the `~/.azure/azureProfile.json` file. +O módulo `azure` exibe a assinatura Azure atual. Isto é baseado na exibição do nome da assinatura padrão ou no nome do usuário, como definido no arquivo `~/.azure/azureProfile.json`. ### Opções @@ -620,17 +632,17 @@ O módulo `c` mostra algumas informações sobre o seu compilador de C. Por padr ### Opções -| Opções | Padrão | Descrição | -| ------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | A string de formato do módulo. | -| `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | O símbolo utilizado antes de exibir os detalhes do compilador | -| `detect_extensions` | `['c', 'h']` | Quais extensões devem ativar este módulo. | -| `detect_files` | `[]` | Quais nomes de arquivos devem ativar este módulo. | -| `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | Como detectar qual é o compilador | -| `style` | `'bold 149'` | O estilo do módulo. | -| `disabled` | `false` | Desabilita o módulo `c`. | +| Opções | Padrão | Descrição | +| ------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | A string de formato do módulo. | +| `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | O símbolo utilizado antes de exibir os detalhes do compilador | +| `detect_extensions` | `['c', 'h']` | Quais extensões devem ativar este módulo. | +| `detect_files` | `[]` | Quais nomes de arquivos devem ativar este módulo. | +| `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | Como detectar qual é o compilador | +| `style` | `'bold 149'` | O estilo do módulo. | +| `disabled` | `false` | Desabilita o módulo `c`. | ### Variáveis @@ -671,7 +683,7 @@ O caractere vai te dizer se o ultimo comando foi bem sucedido ou não. Você pod Por padrão ele apenas muda de cor. Se você deseja alterar o formato de uma olhada [neste exemplo](#with-custom-error-shape). -::: warning +::: atenção `vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Opções + +| Opções | Padrão | Descrição | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | O formato do módulo. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | O estilo do módulo. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Quais extensões devem ativar este módulo. | +| `detect_files` | `['.envrc']` | Quais nomes de arquivos devem ativar este módulo. | +| `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variáveis + +| Variável | Exemplo | Descrição | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Espelha o valor da opção `symbol`. | +| style\* | `red bold` | Espelha o valor da opção `style`. | + +*: Esta variável só pode ser usada como parte de uma string de estilo + +### Exemplo + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context O módulo `docker_context` exibe o [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) ativo atualmente se não estiver definido como `default` ou se as variáveis de ambiente `DOCKER_MACHINE_NAME`, `DOCKER_HOST` ou `DOCKER_CONTEXT` estiverem definidas (iram sobrescrever o contexto atual). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | O estilo do módulo. | -| `detect_extensions` | `[fnl]` | Quais extensões devem ativar este módulo. | +| `detect_extensions` | `['fnl']` | Quais extensões devem ativar este módulo. | | `detect_files` | `[]` | Quais nomes de arquivos devem ativar este módulo. | | `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Opções + +| Opções | Padrão | Descrição | +| -------------------- | ------------------------------------------------------------ | ------------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | O formato do módulo. | +| `added_style` | `'bold green'` | O estilo para a contagem de adições. | +| `deleted_style` | `'bold red'` | O estilo para a contagem de exclusões. | +| `only_nonzero_diffs` | `true` | Exibe apenas o status para itens alterados. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variáveis + +| Variável | Exemplo | Descrição | +| ----------------- | ------- | --------------------------------------- | +| added | `1` | O número atual de linhas adicionadas | +| deleted | `2` | O número atual de linhas excluidas | +| added_style\* | | Espelha o valor da opção `added_style` | +| deleted_style\* | | Espelha o valor da opção`deleted_style` | + +*: Esta variável só pode ser usada como parte de uma string de estilo + +### Exemplo + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) O módulo `gcloud` exibe a configuração atual para a CLI do [`gcloud`](https://cloud.google.com/sdk/gcloud). Isto é baseadp mp arquivo `~/.config/gcloud/active_config` e no arquivo`~/.config/gcloud/configurations/config_{CONFIG NAME}` e a env var `CLOUDSDK_CONFIG`. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Opções @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Opções | Padrão | Descrição | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | O formato do módulo. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | O estilo do módulo. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | O estilo do módulo. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variáveis @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Opções | Padrão | Descrição | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | O formato do módulo. | -| `version_format` | `"v${raw}"` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Quais extensões devem ativar este módulo. | +| `format` | `'via [$symbol($version )]($style)'` | O formato do módulo. | +| `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Quais extensões devem ativar este módulo. | | `detect_files` | `[]` | Quais nomes de arquivos devem ativar este módulo. | -| `detect_folders` | `["gradle"]` | Quais pastas devem ativar este módulo. | -| `style` | `"bold bright-cyan"` | O estilo do módulo. | +| `detect_folders` | `['gradle']` | Quais pastas devem ativar este módulo. | +| `style` | `'bold bright-cyan'` | O estilo do módulo. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Opções | Padrão | Descrição | | ------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | O formato do módulo. | -| `version_format` | `"v${raw}"` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Quais extensões devem ativar este módulo. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Quais nomes de arquivos devem ativar este módulo. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Quais pastas devem ativar este módulo. | -| `symbol` | `"⌘ "` | O formato de string que representa o simbolo do Helm. | -| `style` | `"bold fg:202"` | O estilo do módulo. | +| `format` | `'via [$symbol($version )]($style)'` | O formato do módulo. | +| `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Quais extensões devem ativar este módulo. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Quais nomes de arquivos devem ativar este módulo. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Quais pastas devem ativar este módulo. | +| `symbol` | `'⌘ '` | O formato de string que representa o simbolo do Helm. | +| `style` | `'bold fg:202'` | O estilo do módulo. | | `disabled` | `false` | Disables the `haxe` module. | ### Variáveis @@ -2107,14 +2195,15 @@ O módulo `hostname` exibe o nome do hostname. ### Opções -| Opções | Padrão | Descrição | -| ------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | Apenas exibe o hostname quando conectado em uma sessão SSH. | -| `ssh_symbol` | `'🌐 '` | Uma formatação de string que representa o símbolo quando conectado à sessão SSH. | -| `trim_at` | `'.'` | String na qual vai truncar o hostname, após a primeira correspondência. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | O formato do módulo. | -| `style` | `'bold dimmed green'` | O estilo do módulo. | -| `disabled` | `false` | Desabilita o módulo `hostname`. | +| Opções | Padrão | Descrição | +| ----------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Apenas exibe o hostname quando conectado em uma sessão SSH. | +| `ssh_symbol` | `'🌐 '` | Uma formatação de string que representa o símbolo quando conectado à sessão SSH. | +| `trim_at` | `'.'` | String na qual vai truncar o hostname, após a primeira correspondência. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | O formato do módulo. | +| `style` | `'bold dimmed green'` | O estilo do módulo. | +| `disabled` | `false` | Desabilita o módulo `hostname`. | ### Variáveis @@ -2126,7 +2215,9 @@ O módulo `hostname` exibe o nome do hostname. *: Esta variável só pode ser usada como parte de uma string de estilo -### Exemplo +### Exemplos + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java O módulo `java` exibe o versão atual instalada do [Java](https://www.oracle.com/java/). Por padrão o módulo vai exibir se uma das condições a seguir for atendida: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Exibe o nome atual do [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) e, se definido, o namespace, usuário e cluster do arquivo kubeconfig. O namespace precisa ser definido no arquivo kubeconfig, isso pode ser feito via `kubectl config set-context starship-context --namespace astronaut`. Da mesma forma, o usuário e o cluster podem ser definidos com `kubectl config set-context starship-context --user starship-user` e `kubectl config set-context starship-context --cluster starship-cluster`. Se a env var `$KUBECONFIG` estiver definida o módulo vai usa-la ao invés de usar o `~/.kube/config`. +Exibe o nome atual do [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) e, se definido, o namespace, usuário e cluster do arquivo kubeconfig. O namespace precisa ser definido no arquivo kubeconfig, isso pode ser feito via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. Se a env var `$KUBECONFIG` estiver definida o módulo vai usa-la ao invés de usar o `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Opções +::: atenção + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Opções | Padrão | Descrição | | ------------------- | ---------------------------------------------------- | ------------------------------------------------------------- | | `symbol` | `'☸ '` | Uma string que representa o simbolo exibido antes do Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | O formato do módulo. | | `style` | `'cyan bold'` | O estilo do módulo. | -| `context_aliases` | `{}` | Tabela de aliases de contexto para exibir. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Tabela de aliases de contexto para exibir. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Quais extensões devem ativar este módulo. | | `detect_files` | `[]` | Quais nomes de arquivos devem ativar este módulo. | | `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Desabilita o módulo `kubernetes`. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variável | Descrição | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variáveis | Variável | Exemplo | Descrição | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Correspondência Regex +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -A expressão regular deve coincidir com todo o contexto kube, Grupos de captura podem ser referenciados usando `$name` e `$N` na substituição. Isto esta mais explicado na documentação do [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace). - -Nomes longos de clusters gerados automaticamente podem ser encurtados usando expressão regular: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Quebra de Linha @@ -2730,7 +2861,7 @@ O módulo `nodejs` exibe a versão atual instalada do [Node.js](https://nodejs.o | `detect_folders` | `['node_modules']` | Quais pastas devem ativar este módulo. | | `style` | `'bold green'` | O estilo do módulo. | | `disabled` | `false` | Desabilita o módulo `nodejs`. | -| `not_capable_style` | `bold red` | O estilo para o módulo quando a propriedade engine no package.json não coincide com a versão do Node.js. | +| `not_capable_style` | `'bold red'` | O estilo para o módulo quando a propriedade engine no package.json não coincide com a versão do Node.js. | ### Variáveis @@ -2890,8 +3021,8 @@ Este módulo é desabilitado por padrão. Para habilitar, defina `disabled` para | Opções | Padrão | Descrição | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | O formato do módulo. | -| `style` | `"bold white"` | O estilo do módulo. | +| `format` | `'[$symbol]($style)'` | O formato do módulo. | +| `style` | `'bold white'` | O estilo do módulo. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3149,13 +3280,13 @@ Por padrão o módulo vai exibir se uma das condições a seguir for atendida: ### Variáveis -| Variável | Exemplo | Descrição | -| --------------- | ---------- | --------------------------------- | -| version | `v0.12.24` | A versão do `pulumi` | -| stack | `dev` | A stack Pulumi atual | -| nome do usuário | `alice` | O nome de usuário Pulumi atual | -| symbol | | Espelha o valor da opção `symbol` | -| style\* | | Espelha o valor da opção `style` | +| Variável | Exemplo | Descrição | +| --------- | ---------- | --------------------------------- | +| version | `v0.12.24` | A versão do `pulumi` | +| stack | `dev` | A stack Pulumi atual | +| username | `alice` | O nome de usuário Pulumi atual | +| symbol | | Espelha o valor da opção `symbol` | +| style\* | | Espelha o valor da opção `style` | *: Esta variável só pode ser usada como parte de uma string de estilo @@ -3245,7 +3376,7 @@ Por padrão o módulo vai exibir se uma das condições a seguir for atendida: | `symbol` | `'🐍 '` | Uma string que representa o simbolo do Python | | `style` | `'yellow bold'` | O estilo do módulo. | | `pyenv_version_name` | `false` | Usa pyenv para pegar a versão do Python | -| `pyenv_prefix` | `pyenv` | Prefixo antes da versão do pyenv, apenas usado se pyenv for usado | +| `pyenv_prefix` | `'pyenv'` | Prefixo antes da versão do pyenv, apenas usado se pyenv for usado | | `python_binary` | `['python', 'python3', 'python2']` | Configura o binário python que o Starship vai executar para obter a versão. | | `detect_extensions` | `['py']` | Quais extensões devem acionar este módulo | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | [] | @@ -3562,22 +3693,23 @@ Este módulo é desabilitado por padrão. Para habilitar, defina `disabled` para ### Opções -| Opções | Padrão | Descrição | -| ---------------------- | ------------------------- | ------------------------------------------------------- | -| `bash_indicator` | `'bsh'` | Uma string para representar o bash. | -| `fish_indicator` | `'fsh'` | Uma string usada para representar o fish. | -| `zsh_indicator` | `'zsh'` | Uma string usada para representar o zsh. | -| `powershell_indicator` | `'psh'` | Uma string usada para representar o powershell. | -| `ion_indicator` | `'ion'` | Uma string usada para representar o ion. | -| `elvish_indicator` | `'esh'` | Uma string usada para representar o elvish. | -| `tcsh_indicator` | `'tsh'` | Uma string usada para representar o tcsh. | -| `xonsh_indicator` | `'xsh'` | Uma string usada para representar o xonsh. | -| `cmd_indicator` | `'cmd'` | Uma string usada para representar o cmd. | -| `nu_indicator` | `'nu'` | Uma string usada para representar o nu. | -| `unknown_indicator` | `''` | Valor padrão para exibir quando o shell é desconhecido. | -| `format` | `'[$indicator]($style) '` | O formato do módulo. | -| `style` | `'white bold'` | O estilo do módulo. | -| `disabled` | `true` | Desabilita o módulo `shell`. | +| Opções | Padrão | Descrição | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | Uma string para representar o bash. | +| `fish_indicator` | `'fsh'` | Uma string usada para representar o fish. | +| `zsh_indicator` | `'zsh'` | Uma string usada para representar o zsh. | +| `powershell_indicator` | `'psh'` | Uma string usada para representar o powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | Uma string usada para representar o ion. | +| `elvish_indicator` | `'esh'` | Uma string usada para representar o elvish. | +| `tcsh_indicator` | `'tsh'` | Uma string usada para representar o tcsh. | +| `xonsh_indicator` | `'xsh'` | Uma string usada para representar o xonsh. | +| `cmd_indicator` | `'cmd'` | Uma string usada para representar o cmd. | +| `nu_indicator` | `'nu'` | Uma string usada para representar o nu. | +| `unknown_indicator` | `''` | Valor padrão para exibir quando o shell é desconhecido. | +| `format` | `'[$indicator]($style) '` | O formato do módulo. | +| `style` | `'white bold'` | O estilo do módulo. | +| `disabled` | `true` | Desabilita o módulo `shell`. | ### Variáveis @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Opções | Padrão | Descrição | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | O formato do módulo. | -| `version_format` | `"v${major}.${minor}.${patch}"` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Quais extensões devem ativar este módulo. | +| `format` | `'via [$symbol($version )]($style)'` | O formato do módulo. | +| `version_format` | `'v${major}.${minor}.${patch}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Quais extensões devem ativar este módulo. | | `detect_files` | `[]` | Quais nomes de arquivos devem ativar este módulo. | | `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | -| `style` | `"bold blue"` | O estilo do módulo. | +| `style` | `'bold blue'` | O estilo do módulo. | | `disabled` | `false` | Disables this module. | ### Variáveis @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +Por padrão, o módulo será exibido se qualquer das seguintes condições for atendida: + +- O diretório atual conter um arquivo `template.typ` +- The current directory contains any `*.typ` file + +### Opções + +| Opções | Padrão | Descrição | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | O formato do módulo. | +| `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | O estilo do módulo. | +| `detect_extensions` | `['.typ']` | Quais extensões devem ativar este módulo. | +| `detect_files` | `['template.typ']` | Quais nomes de arquivos devem ativar este módulo. | +| `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variáveis + +| Variável | Exemplo | Descrição | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Espelha o valor da opção `symbol` | +| style\* | | Espelha o valor da opção `style` | + +*: Esta variável só pode ser usada como parte de uma string de estilo + ## Nome do usuário O módulo `username` mostra o nome de usuário do usuário ativo. O módulo será mostrado se alguma das seguintes condições for atendida: diff --git a/docs/pt-BR/guide/README.md b/docs/pt-BR/guide/README.md index 67d28420..f13eb380 100644 --- a/docs/pt-BR/guide/README.md +++ b/docs/pt-BR/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Siga o @StarshipPrompt no Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/pt-BR/presets/README.md b/docs/pt-BR/presets/README.md index 9e41bc24..0d58e994 100644 --- a/docs/pt-BR/presets/README.md +++ b/docs/pt-BR/presets/README.md @@ -63,3 +63,9 @@ Esta personalização é inspirada em [M365Princess](https://github.com/JanDeDob Este preset é inspirado por [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Captura de tela de Tokyo Night preset](/presets/img/tokyo-night.png "Clique para visualizar Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/pt-BR/presets/gruvbox-rainbow.md b/docs/pt-BR/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..588b5c3a --- /dev/null +++ b/docs/pt-BR/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Retornar para Personalizações](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Pré-requisitos + +- Uma fonte [Nerd Font](https://www.nerdfonts.com/) instalada e ativada em seu terminal + +### Configuração + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Clique para baixar o TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/pt-BR/presets/jetpack.md b/docs/pt-BR/presets/jetpack.md new file mode 100644 index 00000000..339ab8c8 --- /dev/null +++ b/docs/pt-BR/presets/jetpack.md @@ -0,0 +1,24 @@ +[Retornar para Personalizações](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuração + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Clique para baixar o TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/pt-PT/config/README.md b/docs/pt-PT/config/README.md index 396fbb2c..dccdabf2 100644 --- a/docs/pt-PT/config/README.md +++ b/docs/pt-PT/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Example @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Default | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | Default | Description | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Default | Description | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Example | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | The style for the module. | +| `style` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/pt-PT/guide/README.md b/docs/pt-PT/guide/README.md index 0289a807..26c72554 100644 --- a/docs/pt-PT/guide/README.md +++ b/docs/pt-PT/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Follow @StarshipPrompt on Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

diff --git a/docs/pt-PT/presets/README.md b/docs/pt-PT/presets/README.md index 3903bc17..2e332ad1 100644 --- a/docs/pt-PT/presets/README.md +++ b/docs/pt-PT/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/pt-PT/presets/gruvbox-rainbow.md b/docs/pt-PT/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..7e2db717 --- /dev/null +++ b/docs/pt-PT/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Prerequisites + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### Configuration + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/pt-PT/presets/jetpack.md b/docs/pt-PT/presets/jetpack.md new file mode 100644 index 00000000..0f52a9a9 --- /dev/null +++ b/docs/pt-PT/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Configuration + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/ru-RU/README.md b/docs/ru-RU/README.md index 9439e767..811871ea 100644 --- a/docs/ru-RU/README.md +++ b/docs/ru-RU/README.md @@ -2,7 +2,7 @@ home: true heroImage: /logo.svg heroText: -tagline: Минималистичная, быстрая и бесконечно настраиваемая командная строка для любой оболочки! +tagline: Минималистичное, быстрое и бесконечно настраиваемое приглашение командной строки для любой оболочки! actionText: Начало работы → actionLink: ./guide/ features: @@ -18,7 +18,7 @@ features: footer: Под лицензией ISC | Авторское право © 2019-настоящее Starship Contributors #Used for the description meta tag, for SEO metaTitle: "Starship: Cross-Shell Prompt" -description: Starship - минимальная, быстрая и бесконечная настраиваемая командная строка для любой оболочки! Показывает нужную вам информацию, оставаясь красивой и минималистичной. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. +description: Starship - минимальная, быстрая и бесконечная настраиваемая командная строка для любой оболочки! Показывает нужную вам информацию, оставаясь красивой и минималистичной. Быстрая установка доступна для Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, и PowerShell. ---
@@ -28,34 +28,34 @@ description: Starship - минимальная, быстрая и бесконе
-### Обязательные требования +### Обязательные условия - Установленный и включенный шрифт [Nerd Font](https://www.nerdfonts.com/) в вашем терминале. ### Быстрая установка -1. Установите двоичный файл **starship**: +1. Установите бинарный файл **starship**: - #### Установить последнюю версию + #### Установка последней версии - Через Bash: + Через Shell: ```sh curl -sS https://starship.rs/install.sh | sh ``` - Для обновления Starship перезапустите этот скрипт. Он заменит текущую версию без изменения конфигурации. + Чтобы обновить Starship, повторно запустите приведенный выше скрипт. Он заменит текущую версию, не затрагивая конфигурацию Starship. - #### Установить через менеджер пакетов + #### Установка через пакетный менеджер - С [Homebrew](https://brew.sh/): + С помощью [Homebrew](https://brew.sh/): ```sh brew install starship ``` - With [Winget](https://github.com/microsoft/winget-cli): + С помощью [Winget](https://github.com/microsoft/winget-cli): ```powershell winget install starship @@ -149,7 +149,7 @@ description: Starship - минимальная, быстрая и бесконе ::: warning - This will change in the future. Only Nushell v0.78+ is supported. + This will change in the future. Поддерживается только Nushell v0.78+. ::: diff --git a/docs/ru-RU/advanced-config/README.md b/docs/ru-RU/advanced-config/README.md index 8586667c..005fff03 100644 --- a/docs/ru-RU/advanced-config/README.md +++ b/docs/ru-RU/advanced-config/README.md @@ -271,14 +271,14 @@ continuation_prompt = '▶▶ ' Цветовой спецификатор может быть одним из следующих: -- One of the standard terminal colors: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. You can optionally prefix these with `bright-` to get the bright version (e.g. `bright-white`). +- Один из стандартных цветов терминалов: `black`, `red`, `green`, `blue`, `gellow`, `purple`, `cyan`, `white`. You can optionally prefix these with `bright-` to get the bright version (e.g. `bright-white`). - `#`, за которой следует шестизначное шестнадцатеричное число. Это определяет [шестнадцатеричный код цвета RGB](https://www.w3schools.com/colors/colors_hexadecimal.asp). - Число от 0 до 255. Это определяет [8-битный код цвета ANSI](https://i.stack.imgur.com/KTSQa.png). Если для переднего плана/фона задано несколько цветов, то последняя из строк будет иметь приоритет. -Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist: +Не все строки стиля будут корректно отображаться в терминале. В частности, существуют следующие известные ошибки: -- Many terminals disable support for `blink` by default -- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564). -- `strikethrough` is not supported by the default macOS Terminal.app +- Во многих терминалах по умолчанию отключена поддержка `blink` +- `hidden` [не поддерживается в iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564). +- `strikethrough` по умолчанию не поддерживается в macOS Terminal.app diff --git a/docs/ru-RU/config/README.md b/docs/ru-RU/config/README.md index 1ce293ee..5aeb02e1 100644 --- a/docs/ru-RU/config/README.md +++ b/docs/ru-RU/config/README.md @@ -206,6 +206,13 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Пример @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Опции | Параметр | По умолчанию | Описание | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Таблица региона псевдонимов, отображаемая вместе с именем AWS. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | Стиль модуля. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Отключение модуля `AWS`. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Опции -| Параметр | По умолчанию | Описание | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | Стиль модуля. | -| `disabled` | `false` | Disables the `c` module. | +| Параметр | По умолчанию | Описание | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | Стиль модуля. | +| `disabled` | `false` | Disables the `c` module. | ### Переменные @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Опции + +| Параметр | По умолчанию | Описание | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | Формат модуля. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | Стиль модуля. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Переменные + +| Переменная | Пример | Описание | +| ---------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Отражает значение параметра `symbol`. | +| style\* | `red bold` | Отражает значение параметра `style`. | + +*: Эта переменная может использоваться только в качестве части строки style + +### Пример + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Контекст Docker The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | Стиль модуля. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Опции + +| Параметр | По умолчанию | Описание | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | Формат модуля. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Переменные + +| Переменная | Пример | Описание | +| ----------------- | ------ | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: Эта переменная может использоваться только в качестве части строки style + +### Пример + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Опции @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Параметр | По умолчанию | Описание | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | Формат модуля. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | Стиль модуля. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | Стиль модуля. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Переменные @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Параметр | По умолчанию | Описание | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Формат модуля. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | Стиль модуля. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | Стиль модуля. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Параметр | По умолчанию | Описание | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Формат модуля. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | Стиль модуля. | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | Стиль модуля. | | `disabled` | `false` | Disables the `haxe` module. | ### Переменные @@ -2107,14 +2195,15 @@ format = 'via [⎈ $version](bold white) ' ### Опции -| Параметр | По умолчанию | Описание | -| ------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | Показывать имя хоста только при подключении через SSH. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | Символы, по которую имя хоста будет сокращено после первого совпадения. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | Формат модуля. | -| `style` | `'bold dimmed green'` | Стиль модуля. | -| `disabled` | `false` | Отключает модуль `hostname`. | +| Параметр | По умолчанию | Описание | +| ----------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Показывать имя хоста только при подключении через SSH. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | Символы, по которую имя хоста будет сокращено после первого совпадения. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | Формат модуля. | +| `style` | `'bold dimmed green'` | Стиль модуля. | +| `disabled` | `false` | Отключает модуль `hostname`. | ### Переменные @@ -2126,7 +2215,9 @@ format = 'via [⎈ $version](bold white) ' *: Эта переменная может использоваться только в качестве части строки style -### Пример +### Примеры + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Опции +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Параметр | По умолчанию | Описание | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | Формат модуля. | | `style` | `'cyan bold'` | Стиль модуля. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Отключает модуль `kubernetes`. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Переменная | Описание | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Переменные | Переменная | Пример | Описание | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Разрыв Строки @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | Стиль модуля. | | `disabled` | `false` | Отключает модуль `nodejs`. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Переменные @@ -2890,8 +3021,8 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known | Параметр | По умолчанию | Описание | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | Формат модуля. | -| `style` | `"bold white"` | Стиль модуля. | +| `format` | `'[$symbol]($style)'` | Формат модуля. | +| `style` | `'bold white'` | Стиль модуля. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | Стиль модуля. | | `pyenv_version_name` | `false` | Использовать pyenv для получения версии Python | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ The `shell` module shows an indicator for currently used shell. ### Опции -| Параметр | По умолчанию | Описание | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | Формат модуля. | -| `style` | `'white bold'` | Стиль модуля. | -| `disabled` | `true` | Disables the `shell` module. | +| Параметр | По умолчанию | Описание | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | Формат модуля. | +| `style` | `'white bold'` | Стиль модуля. | +| `disabled` | `true` | Disables the `shell` module. | ### Переменные @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Параметр | По умолчанию | Описание | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Формат модуля. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | Стиль модуля. | +| `style` | `'bold blue'` | Стиль модуля. | | `disabled` | `false` | Disables this module. | ### Переменные @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- Текущий каталог содержит файл `template.typ` +- The current directory contains any `*.typ` file + +### Опции + +| Параметр | По умолчанию | Описание | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | Стиль модуля. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Переменные + +| Переменная | Пример | Описание | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Отражает значение параметра `symbol` | +| style\* | | Отражает значение параметра `style` | + +*: Эта переменная может использоваться только в качестве части строки style + ## Имя пользователя Модуль `username` показывает имя текущего пользователя. Модуль будет показан, если любое из следующих условий соблюдено: diff --git a/docs/ru-RU/faq/README.md b/docs/ru-RU/faq/README.md index fd295b14..f3f1992d 100644 --- a/docs/ru-RU/faq/README.md +++ b/docs/ru-RU/faq/README.md @@ -1,12 +1,12 @@ -# Frequently Asked Questions +# Часто задаваемые вопросы ## Какая конфигурация используется в демо-GIF? - **Эмулятор терминала**: [iTerm2](https://iterm2.com/) - - **Тема**: Минимальная + - **Тема**: Minimal - **Цветовая схема**: [Snazzy](https://github.com/sindresorhus/iterm2-snazzy) - - **Font**: [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) -- **Оболочка**: [Fish Shell](https://fishshell.com/) + - **Шрифт**: [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads) +- **Командная оболочка**: [Fish Shell](https://fishshell.com/) - **Конфигурация**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish) - **Подсказка**: [Starship](https://starship.rs/) diff --git a/docs/ru-RU/guide/README.md b/docs/ru-RU/guide/README.md index e992d3a4..5795e781 100644 --- a/docs/ru-RU/guide/README.md +++ b/docs/ru-RU/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Подпишитесь на @StarshipPrompt в Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

-**Минималистичная, быстрая и бесконечно настраиваемая командная строка для любой оболочки!** +**Минималистичное, быстрое и бесконечно настраиваемое приглашение командной строки для любой оболочки!** - **Быстрая:** она быстрая – _очень-очень_ быстрая! 🚀 - **Настраиваемая:** настройте каждый элемент вашей командной строки. @@ -229,6 +232,7 @@ Alternatively, install Starship using any of the following package managers: | Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | | NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | | Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
diff --git a/docs/ru-RU/presets/README.md b/docs/ru-RU/presets/README.md index acfaf78f..a20991e9 100644 --- a/docs/ru-RU/presets/README.md +++ b/docs/ru-RU/presets/README.md @@ -1,65 +1,71 @@ -# Предустановки +# Пресеты -Ниже приведена коллекция предустановок конфигураций сообщества для Starship. Если вы хотите поделиться своей предустановкой, пожалуйста, [создайте PR](https://github.com/starship/starship/edit/master/docs/presets/README.md), обновляя этот файл! 😊 +Ниже представлена коллекция пресетов для Starship, созданных сообществом. Если у вас есть пресет, которым вы хотите поделиться, пожалуйста, [отправьте PR](https://github.com/starship/starship/edit/master/docs/presets/README.md) для обновления этого файла! 😊 -To get details on how to use a preset, simply click on the image. +Чтобы получить подробную информацию о том, как использовать тот или иной пресет, просто щелкните на его изображение. -## [Символы Шрифта Nerd Font](./nerd-font.md) +## [Nerd Font Symbols](./nerd-font.md) -This preset changes the symbols for each module to use Nerd Font symbols. +Этот пресет изменяет символы для каждого модуля на символы Nerd Font. -[![Скриншот предустановки Nerd Font Symbols](/presets/img/nerd-font-symbols.png "Click to view Nerd Font Symbols preset")](./nerd-font) +[![Скриншот пресета Nerd Font Symbols](/presets/img/nerd-font-symbols.png "Нажмите, чтобы просмотреть пресет Nerd Font Symbols")](./nerd-font) ## [No Nerd Fonts](./no-nerd-font.md) -This preset changes the symbols for several modules so that no Nerd Font symbols are used anywhere in the prompt. +Этот пресет изменяет символы для нескольких модулей таким образом, чтобы в приглашении командной строки нигде не использовались символы Nerd Font. ::: tip -This preset will become the default preset [in a future release of starship](https://github.com/starship/starship/pull/3544). +Этот пресет станет пресетом по умолчанию [в будущем релизе starship](https://github.com/starship/starship/pull/3544). ::: -[Click to view No Nerd Font preset](./no-nerd-font) +[Нажмите, чтобы просмотреть пресет No Nerd Font](./no-nerd-font) ## [Bracketed Segments](./bracketed-segments.md) -This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.). +Шаблон изменяет формат всех встроенных модулей для показа их сегментов в скобках вместо использования стандартных в Starship слов ("via", "on", и т. д.). -[![Screenshot of Bracketed Segments preset](/presets/img/bracketed-segments.png "Click to view Bracketed Segments preset")](./bracketed-segments) +[![Скриншот пресета Bracketed Segments](/presets/img/bracketed-segments.png "Нажмите, чтобы просмотреть пресет Bracketed Segments")](./bracketed-segments) ## [Plain Text Symbols](./plain-text.md) -This preset changes the symbols for each module into plain text. Great if you don't have access to Unicode. +Этот пресет изменяет символы для каждого модуля на обычный текст. Отлично подходит, если у вас нет возможности использовать Unicode. -[![Screenshot of Plain Text Symbols preset](/presets/img/plain-text-symbols.png "Click to view Plain Text Symbols preset")](./plain-text) +[![Скриншот пресета Plain Text Symbols](/presets/img/plain-text-symbols.png "Нажмите, чтобы просмотреть пресет Plain Text Symbols")](./plain-text) ## [No Runtime Versions](./no-runtimes.md) -This preset hides the version of language runtimes. If you work in containers or virtualized environments, this one is for you! +Этот пресет скрывает версии сред выполнения языков программирования. Если вы работаете с контейнерами или виртуализированными средами, то этот пресет для вас! -[![Screenshot of Hide Runtime Versions preset](/presets/img/no-runtime-versions.png "Click to view No Runtime Versions preset")](./no-runtimes) +[![Скриншот пресета Hide Runtime Versions](/presets/img/no-runtime-versions.png "Нажмите, чтобы просмотреть пресет No Runtime Versions")](./no-runtimes) ## [No Empty Icons](./no-empty-icons.md) -This preset does not show icons if the toolset is not found. +Этот пресет не отображает иконки, если набор инструментов не найден. -[![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png "Click to view No Runtime Versions preset")](./no-empty-icons.md) +[![Скриншот пресета No Empty Icons](/presets/img/no-empty-icons.png "Нажмите, чтобы просмотреть пресет No Runtime Versions")](./no-empty-icons.md) ## [Pure Prompt](./pure-preset.md) -This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure). +Этот пресет имитирует внешний вид и поведение [Pure](https://github.com/sindresorhus/pure). -[![Screenshot of Pure preset](/presets/img/pure-preset.png "Click to view Pure Prompt preset")](./pure-preset) +[![Скриншот пресета Pure](/presets/img/pure-preset.png "Нажмите, чтобы просмотреть пресет Pure Prompt")](./pure-preset) ## [Pastel Powerline](./pastel-powerline.md) -This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship. +Эта пресет вдохновлен [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). В нем также показано, как работает замена пути в starship. -[![Screenshot of Pastel Powerline preset](/presets/img/pastel-powerline.png "Click to view Pure Prompt preset")](./pastel-powerline) +[![Скриншот пресета Pastel Powerline](/presets/img/pastel-powerline.png "Нажмите, чтобы просмотреть пресет Pure Prompt")](./pastel-powerline) ## [Tokyo Night](./tokyo-night.md) -This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +Этот пресет вдохновлен [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). -[![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) +[![Скриншот пресета Tokyo Night](/presets/img/tokyo-night.png "Нажмите, чтобы просмотреть пресет Tokyo Night")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +Этот пресет в значительной степени вдохновлен [Pastel Powerline](./pastel-powerline.md) и [Tokyo Night](./tokyo-night.md). + +[![Скриншот пресета Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Нажмите, чтобы просмотреть пресет Gruvbox Rainbow")](./gruvbox-rainbow) diff --git a/docs/ru-RU/presets/bracketed-segments.md b/docs/ru-RU/presets/bracketed-segments.md index 668805bb..37737aa7 100644 --- a/docs/ru-RU/presets/bracketed-segments.md +++ b/docs/ru-RU/presets/bracketed-segments.md @@ -1,10 +1,10 @@ -[Return to Presets](./README.md#bracketed-segments) +[Вернуться к пресетам](./README.md#bracketed-segments) -# Bracketed Segments Preset +# Пресет Bracketed Segments -This preset changes the format of all the built-in modules to show their segment in brackets instead of using the default Starship wording ("via", "on", etc.). +Шаблон изменяет формат всех встроенных модулей для показа их сегментов в скобках вместо использования стандартных в Starship слов ("via", "on", и т. д.). -![Screenshot of Bracketed Segments preset](/presets/img/bracketed-segments.png) +![Скриншот пресета Bracketed Segments](/presets/img/bracketed-segments.png) ### Конфигурация @@ -12,6 +12,6 @@ This preset changes the format of all the built-in modules to show their segment starship preset bracketed-segments -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/bracketed-segments.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/bracketed-segments.toml) <<< @/.vuepress/public/presets/toml/bracketed-segments.toml diff --git a/docs/ru-RU/presets/gruvbox-rainbow.md b/docs/ru-RU/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..b60d31d6 --- /dev/null +++ b/docs/ru-RU/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Вернуться к пресетам](./README.md#gruvbox-rainbow) + +# Пресет Gruvbox Rainbow + +Этот пресет в значительной степени вдохновлен [Pastel Powerline](./pastel-powerline.md) и [Tokyo Night](./tokyo-night.md). + +![Скриншот пресета Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png) + +### Обязательные требования + +- Установленный и включенный шрифт [Nerd Font](https://www.nerdfonts.com/) в вашем терминале + +### Конфигурация + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Нажмите, чтобы загрузить TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ru-RU/presets/jetpack.md b/docs/ru-RU/presets/jetpack.md new file mode 100644 index 00000000..5fc4fa80 --- /dev/null +++ b/docs/ru-RU/presets/jetpack.md @@ -0,0 +1,24 @@ +[Вернуться к пресетам](./README.md#jetpack) + +# Пресет Jetpack + +Это псевдоминималистичный пресет, вдохновленный приглашениями командной оболочки [geometry](https://github.com/geometry-zsh/geometry) и [spaceship](https://github.com/spaceship-prompt/spaceship-prompt). + +> Jetpack использует цветовую тему терминала. + +![Скриншот пресета Jetpack](/presets/img/jetpack.png) + +### Обязательные условия + +- Требуется оболочка с поддержкой [`правостороннего приглашения`](https://starship.rs/advanced-config/#enable-right-prompt). +- Рекомендуется [Jetbrains Mono](https://www.jetbrains.com/lp/mono/). + +### Конфигурация + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Нажмите, чтобы загрузить TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/ru-RU/presets/nerd-font.md b/docs/ru-RU/presets/nerd-font.md index 33592888..956eee3f 100644 --- a/docs/ru-RU/presets/nerd-font.md +++ b/docs/ru-RU/presets/nerd-font.md @@ -1,8 +1,8 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Вернуться к пресетам](./README.md#nerd-font-symbols) -# Nerd Font Symbols Preset +# Пресет Nerd Font Symbols -This preset changes the symbols for each module to use Nerd Font symbols. +Этот пресет изменяет символы для каждого модуля на символы Nerd Font. ![Скриншот предустановки Nerd Font Symbols](/presets/img/nerd-font-symbols.png) @@ -16,6 +16,6 @@ This preset changes the symbols for each module to use Nerd Font symbols. starship preset nerd-font-symbols -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/nerd-font-symbols.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/nerd-font-symbols.toml) <<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ru-RU/presets/no-empty-icons.md b/docs/ru-RU/presets/no-empty-icons.md index fbb175a2..66b00ce9 100644 --- a/docs/ru-RU/presets/no-empty-icons.md +++ b/docs/ru-RU/presets/no-empty-icons.md @@ -1,10 +1,10 @@ -[Return to Presets](./README.md#no-empty-icons) +[Вернуться к пресетам](./README.md#no-empty-icons) -# No Empty Icons Preset +# Пресет No Empty Icons -If toolset files are identified the toolset icon is displayed. If the toolset is not found to determine its version number, it is not displayed. This preset changes the behavior to display the icon only if the toolset information can be determined. +Если файлы набора инструментов найдены, то отображается икнока набора инструментов. Если набор инструментов не найден и нельзя определить номер его версии, то он не отображается. Этот пресет изменяет поведение так, чтобы значок отображался только в том случае, если информация о наборе инструментов может быть определена. -![Screenshot of No Empty Icons preset](/presets/img/no-empty-icons.png) +![Скриншот пресета No Empty Icons](/presets/img/no-empty-icons.png) ### Конфигурация @@ -12,6 +12,6 @@ If toolset files are identified the toolset icon is displayed. If the toolset is starship preset no-empty-icons -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/no-empty-icons.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/no-empty-icons.toml) <<< @/.vuepress/public/presets/toml/no-empty-icons.toml diff --git a/docs/ru-RU/presets/no-nerd-font.md b/docs/ru-RU/presets/no-nerd-font.md index d236d11d..d0909711 100644 --- a/docs/ru-RU/presets/no-nerd-font.md +++ b/docs/ru-RU/presets/no-nerd-font.md @@ -1,12 +1,12 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Вернуться к пресетам](./README.md#no-nerd-fonts) -# No Nerd Fonts Preset +# Пресет No Nerd Fonts -This preset restricts the use of symbols to those from emoji and powerline sets. +Данный пресет ограничивает использование символов только символами из наборов emoji и powerline. -This means that even without a Nerd Font installed, you should be able to view all module symbols. +Это означает, что даже без установленного шрифта Nerd Font вы сможете увидеть все символы модулей. -This preset will become the default preset in a future release of starship. +Этот пресет станет пресетом по умолчанию в одном из будущих релизов Starship. ### Конфигурация @@ -14,6 +14,6 @@ This preset will become the default preset in a future release of starship. starship preset no-nerd-font -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/no-nerd-font.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/no-nerd-font.toml) <<< @/.vuepress/public/presets/toml/no-nerd-font.toml diff --git a/docs/ru-RU/presets/no-runtimes.md b/docs/ru-RU/presets/no-runtimes.md index 03d83467..5d35fda2 100644 --- a/docs/ru-RU/presets/no-runtimes.md +++ b/docs/ru-RU/presets/no-runtimes.md @@ -1,10 +1,10 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Вернуться к пресетам](./README.md#no-runtime-versions) -# No Runtime Versions Preset +# Пресет No Runtime Versions -This preset hides the version of language runtimes. If you work in containers or virtualized environments, this one is for you! +Этот пресет скрывает версии сред выполнения языков программирования. Если вы работаете с контейнерами или виртуализированными средами, то этот пресет для вас! -![Screenshot of Hide Runtime Versions preset](/presets/img/no-runtime-versions.png) +![Скриншот пресета Hide Runtime Versions](/presets/img/no-runtime-versions.png) ### Конфигурация @@ -12,6 +12,6 @@ This preset hides the version of language runtimes. If you work in containers or starship preset no-runtime-versions -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/no-runtime-versions.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/no-runtime-versions.toml) <<< @/.vuepress/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ru-RU/presets/pastel-powerline.md b/docs/ru-RU/presets/pastel-powerline.md index 71cb8972..cb4b13e4 100644 --- a/docs/ru-RU/presets/pastel-powerline.md +++ b/docs/ru-RU/presets/pastel-powerline.md @@ -1,14 +1,14 @@ -[Return to Presets](./README.md#pastel-powerline) +[Вернуться к пресетам](./README.md#pastel-powerline) -# Pastel Powerline Preset +# Пресет Pastel Powerline -This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). It also shows how path substitution works in starship. +Этот пресет вдохновлен [M365Princess](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/M365Princess.omp.json). В нем также показано, как работает замена пути в starship. -![Screenshot of Pastel Powerline preset](/presets/img/pastel-powerline.png) +![Скриншот пресета Pastel Powerline](/presets/img/pastel-powerline.png) ### Обязательные требования -- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (the example uses Caskaydia Cove Nerd Font) +- Установленный и включенный в терминале шрифт [Nerd Font](https://www.nerdfonts.com/) (в примере используется Caskaydia Cove Nerd Font) ### Конфигурация @@ -16,6 +16,6 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m starship preset pastel-powerline -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/pastel-powerline.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/pastel-powerline.toml) <<< @/.vuepress/public/presets/toml/pastel-powerline.toml diff --git a/docs/ru-RU/presets/plain-text.md b/docs/ru-RU/presets/plain-text.md index bbc602b1..ff106c34 100644 --- a/docs/ru-RU/presets/plain-text.md +++ b/docs/ru-RU/presets/plain-text.md @@ -1,10 +1,10 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Вернуться к пресетам](./README.md#plain-text-symbols) -## Plain Text Symbols Preset +## Пресет Plain Text Symbols -This preset changes the symbols for each module into plain text. Great if you don't have access to Unicode. +Этот пресет изменяет символы для каждого модуля на обычный текст. Отлично подходит, если у вас нет возможности использовать Unicode. -![Screenshot of Plain Text Symbols preset](/presets/img/plain-text-symbols.png) +![Скриншот пресета Plain Text Symbols](/presets/img/plain-text-symbols.png) ### Конфигурация @@ -12,6 +12,6 @@ This preset changes the symbols for each module into plain text. Great if you do starship preset plain-text-symbols -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/plain-text-symbols.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/plain-text-symbols.toml) <<< @/.vuepress/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ru-RU/presets/pure-preset.md b/docs/ru-RU/presets/pure-preset.md index 8268f59a..9d9ddf5d 100644 --- a/docs/ru-RU/presets/pure-preset.md +++ b/docs/ru-RU/presets/pure-preset.md @@ -1,10 +1,10 @@ -[Return to Presets](./README.md#pure) +[Вернуться к пресетам](./README.md#pure) -# Pure Preset +# Пресет Pure -This preset emulates the look and behavior of [Pure](https://github.com/sindresorhus/pure). +Этот пресет имитирует внешний вид и поведение [Pure](https://github.com/sindresorhus/pure). -![Screenshot of Pure preset](/presets/img/pure-preset.png) +![Скриншот пресета Pure](/presets/img/pure-preset.png) ### Конфигурация @@ -12,6 +12,6 @@ This preset emulates the look and behavior of [Pure](https://github.com/sindreso starship preset pure-preset -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/pure-preset.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/pure-preset.toml) <<< @/.vuepress/public/presets/toml/pure-preset.toml diff --git a/docs/ru-RU/presets/tokyo-night.md b/docs/ru-RU/presets/tokyo-night.md index 0735f82f..ba0c0fb5 100644 --- a/docs/ru-RU/presets/tokyo-night.md +++ b/docs/ru-RU/presets/tokyo-night.md @@ -1,10 +1,10 @@ -[Return to Presets](./README.md#pastel-powerline) +[Вернуться к пресетам](./README.md#pastel-powerline) -# Tokyo Night Preset +# Пресет Tokyo Night -This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). +Этот пресет вдохновлен [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). -![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png) +![Скриншот пресета Tokyo Night](/presets/img/tokyo-night.png) ### Обязательные требования @@ -16,6 +16,6 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t starship preset tokyo-night -o ~/.config/starship.toml ``` -[Click to download TOML](/presets/toml/tokyo-night.toml) +[Нажмите, чтобы загрузить TOML](/presets/toml/tokyo-night.toml) <<< @/.vuepress/public/presets/toml/tokyo-night.toml diff --git a/docs/tr-TR/config/README.md b/docs/tr-TR/config/README.md index 9ac9e840..6c01d99b 100644 --- a/docs/tr-TR/config/README.md +++ b/docs/tr-TR/config/README.md @@ -206,6 +206,13 @@ This is the list of prompt-wide configuration options. | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Example @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Options | Option | Default | Description | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Table of region aliases to display in addition to the AWS name. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `stil` | `'bold yellow'` | The style for the module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Disables the `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Option | Default | Description | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `stil` | `'bold 149'` | The style for the module. | -| `disabled` | `false` | Disables the `c` module. | +| Option | Default | Description | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `stil` | `'bold 149'` | The style for the module. | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -671,7 +683,7 @@ The character will tell you whether the last command was successful or not. It c By default it only changes color. If you also want to change its shape take a look at [this example](#with-custom-error-shape). -::: warning +::: uyarı `vimcmd_symbol` yalnızca cmd, fish ve zsh'de desteklenir. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Option | Default | Description | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `stil` | `'bold orange'` | The style for the module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| Variable | Example | Description | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `stil` | `'bold green'` | The style for the module. | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Option | Default | Description | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| Variable | Example | Description | +| ----------------- | ------- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | Default | Description | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `stil` | `"yellow bold"` | The style for the module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `stil` | `'yellow bold'` | The style for the module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `stil` | `"bold bright-cyan"` | The style for the module. | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `stil` | `'bold bright-cyan'` | The style for the module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | Default | Description | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `stil` | `"bold fg:202"` | The style for the module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `stil` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ The `hostname` module shows the system hostname. ### Options -| Option | Default | Description | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `stil` | `'bold dimmed green'` | The style for the module. | -| `disabled` | `false` | Disables the `hostname` module. | +| Option | Default | Description | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Only show hostname when connected to an SSH session. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | String that the hostname is cut off at, after the first match. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `stil` | `'bold dimmed green'` | The style for the module. | +| `disabled` | `false` | Disables the `hostname` module. | ### Variables @@ -2126,7 +2215,9 @@ The `hostname` module shows the system hostname. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Options +::: uyarı + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | Default | Description | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `stil` | `'cyan bold'` | The style for the module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Variable | Description | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `stil` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | Variable | Example | Description | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `stil` | `'bold green'` | The style for the module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y | Option | Default | Description | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `stil` | `"bold white"` | The style for the module. | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `stil` | `'bold white'` | The style for the module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `stil` | `'yellow bold'` | The style for the module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ### Options -| Option | Default | Description | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `stil` | `'white bold'` | The style for the module. | -| `disabled` | `true` | Disables the `shell` module. | +| Option | Default | Description | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `stil` | `'white bold'` | The style for the module. | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | Default | Description | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `stil` | `"bold blue"` | The style for the module. | +| `stil` | `'bold blue'` | The style for the module. | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `template.typ` file +- The current directory contains any `*.typ` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `stil` | `'bold #0093A7'` | The style for the module. | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| Variable | Example | Description | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## Username The `username` module shows active user's username. The module will be shown if any of the following conditions are met: diff --git a/docs/tr-TR/guide/README.md b/docs/tr-TR/guide/README.md index a333bb59..f7ddcd9d 100644 --- a/docs/tr-TR/guide/README.md +++ b/docs/tr-TR/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="@StarshipPrompt'u Twitter'da takip edin" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

@@ -288,7 +292,7 @@ eval "$(starship init bash)"
Cmd -Cmd ıle beraber [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) kullanmalısınız. `%LocalAppData%\clink\starship.lua` dosyasını belirtilen dizinde aşağıdaki kod içeriği olacak şekilde oluşturun: +Cmd ile beraber [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) kullanmalısınız. `%LocalAppData%\clink\starship.lua` dosyasını belirtilen dizinde aşağıdaki kod içeriği olacak şekilde oluşturun: ```lua load(io.popen('starship init cmd'):read("*a"))() diff --git a/docs/tr-TR/presets/README.md b/docs/tr-TR/presets/README.md index 79d72c95..1c20e038 100644 --- a/docs/tr-TR/presets/README.md +++ b/docs/tr-TR/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/tr-TR/presets/gruvbox-rainbow.md b/docs/tr-TR/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..73c65357 --- /dev/null +++ b/docs/tr-TR/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Ön koşullar + +- Terminalinizde bir [Nerd Font](https://www.nerdfonts.com/) yüklü ve etkin olmalı + +### Yapılandırma + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/tr-TR/presets/jetpack.md b/docs/tr-TR/presets/jetpack.md new file mode 100644 index 00000000..ed7cbbbd --- /dev/null +++ b/docs/tr-TR/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Yapılandırma + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/uk-UA/config/README.md b/docs/uk-UA/config/README.md index c41de035..179a76ee 100644 --- a/docs/uk-UA/config/README.md +++ b/docs/uk-UA/config/README.md @@ -206,6 +206,13 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | `add_newline` | `true` | Вставити порожній рядок між командними рядками в оболонці. | | `palette` | `''` | Встановлює кольорову палітру використовуючи `palettes`. | | `palettes` | `{}` | Колекція кольорових палітр, для призначення [кольорів](/advanced-config/#style-strings) до назв визначених користувачем. Зверніть увагу, що кольорові палітри не можуть посилатися на їх власні визначення кольору. | +| `follow_symlinks` | `true` | Перевіряти символічні посилання чи вони посилаються на теки; використовується в таких модулях як git. | + +::: tip + +Якщо у вас є символічні посилання не мережеві файлові системи, зважте на встановлення `follow_symlink` у `false`. + +::: ### Приклад @@ -242,7 +249,7 @@ mustard = '#af8700' ```toml format = '$all' -# Є тотожним +# Which is equivalent to format = """ $username\ $hostname\ @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ format = '$all$directory$character' Під час використання [saml2aws](https://github.com/Versent/saml2aws) інформація про закінчення терміну дії, отримана з `~/.aws/credentials`, повертається до ключа `x_security_token_expires`. +Під час використання [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) профіль читається зі змінної `AWS_SSO_PROFILE`. + ### Параметри | Параметр | Стандартно | Опис | @@ -360,7 +372,7 @@ format = '$all$directory$character' | `region_aliases` | `{}` | Таблиця псевдонімів регіону для показу на додачу до назви AWS. | | `profile_aliases` | `{}` | Таблиця псевдонімів профілю для показу на додачу до назви AWS. | | `style` | `'bold yellow'` | Стиль модуля. | -| `expiration_symbol` | `X` | Символ, який показується, коли закінчився термін дії тимчасових облікових даних. | +| `expiration_symbol` | `'X'` | Символ, який показується, коли закінчився термін дії тимчасових облікових даних. | | `disabled` | `false` | Вимикає модуль `AWS`. | | `force_display` | `false` | Якщо `true`, інформація показується, навіть якщо `credentials`, `credential_process` або `sso_start_url` не вказано. | @@ -620,17 +632,17 @@ format = 'via [🍔 $version](bold green) ' ### Параметри -| Параметр | Стандартно | Опис | -| ------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | Формат рядка модуля. | -| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | -| `symbol` | `'C '` | Символ, який знаходиться перед інформацією про компілятор | -| `detect_extensions` | `['c', 'h']` | Які розширення повинні запускати цей модуль. | -| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | -| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | Як виявити компілятор | -| `style` | `'bold 149'` | Стиль модуля. | -| `disabled` | `false` | Вимикає модуль `c`. | +| Параметр | Стандартно | Опис | +| ------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | Формат рядка модуля. | +| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | +| `symbol` | `'C '` | Символ, який знаходиться перед інформацією про компілятор | +| `detect_extensions` | `['c', 'h']` | Які розширення повинні запускати цей модуль. | +| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | +| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | Як виявити компілятор | +| `style` | `'bold 149'` | Стиль модуля. | +| `disabled` | `false` | Вимикає модуль `c`. | ### Змінні @@ -643,7 +655,7 @@ format = 'via [🍔 $version](bold green) ' NB `версія` не має стандартного формату. -### Commands +### Команди Параметр `commands` отримує список команд для визначення версії та назви компілятора. @@ -673,7 +685,7 @@ format = 'via [$name $version]($style)' ::: warning -`vimcmd_symbol` працює лише з cmd, fish та zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` працює лише з fish через [проблемою визначення режиму роботи в zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). +`vimcmd_symbol` працює лише з cmd, fish та zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` працює лише з fish через [проблему визначення режиму роботи в zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). ::: @@ -789,15 +801,15 @@ vimcmd_symbol = '[V](bold green) ' ## Command Duration – час виконання -Модуль `cmd_duration` показує, скільки часу виконувалась остання команда. Модуль буде показаний лише в тому випадку, якщо на виконання команди пішло понад дві секунди або більше, ніж значення змінної `min_time`, якщо воно задане. +Модуль `cmd_duration` показує, скільки часу виконувалась остання команда. Модуль буде показаний лише в тому випадку, якщо на виконання команди пішло понад дві секунди або більше, ніж значення змінної `min_time`, якщо воно задане. ::: warning Не вмикайте DEBUG trap в Bash -Якщо ви запускаєте Starship у `bash`, не вмикайте `DEBUG` trap після запуску `eval $(starship init $0)`, або цей модуль **** не працюватиме. +Якщо ви запускаєте Starship у `bash`, не вмикайте `DEBUG trap` після запуску `eval $(starship init $0)`, бо цей модуль **не працюватиме**. ::: -Користувачі Bash, яким потрібна функція preexec, можуть використовувати [фреймворк bash_preexec від rcaloras](https://github.com/rcaloras/bash-preexec). Просто визначте масиви `preexec_function` і `precmd_functions` перед запуском `eval $(starship init $0)`, а потім продовжуй як зазвичай. +Користувачі Bash, яким потрібна функція preexec, можуть використовувати [фреймворк bash_preexec від rcaloras](https://github.com/rcaloras/bash-preexec). Просто визначте масиви `preexec_function` і `precmd_functions` перед запуском `eval $(starship init $0)`, а потім продовжуйте як зазвичай. ### Параметри @@ -837,7 +849,7 @@ format = 'underwent [$duration](bold yellow)' ::: tip -Це не призводить до придушення власного модифікатора командного рядка в conda. Можливо, вам доведеться виконати `conda config --set changeps1 False`. +Це не призводить до вимикання власного модифікатора командного рядка в conda. Можливо, вам доведеться виконати `conda config --set changeps1 False`. ::: @@ -944,7 +956,7 @@ format = 'via [✨ $version](bold blue) ' ## Daml -Модуль `daml` показує поточну версію SDK [Daml](https://www.digitalasset.com/developers), коли ви перебуваєте в кореневій теці проєкту Daml. `sdk-version` у файлі `daml.yaml` буде використовуватись, якщо значення не буде перевизначене змінною оточення `DAML_SDK_VERSION`. Типово, модуль показується, якщо виконується будь-яка з наступних умов: +Модуль `daml` показує поточну версію SDK <1">Daml, коли ви перебуваєте в кореневій теці проєкту Daml. `sdk-version` у файлі `daml.yaml` буде використовуватись, якщо значення не буде перевизначене змінною оточення `DAML_SDK_VERSION`. Типово, модуль показується, якщо виконується будь-яка з наступних умов: - Поточна тека містить файл `daml.yaml` @@ -1058,11 +1070,11 @@ format = 'via [🦕 $version](green bold) ' ## Directory -Модуль `directory` показує шлях до поточної теки, урізаючи його до трьох останніх батьківських тек. Шлях до теки також буде скорочений до кореня git-репозиторію, якому ви перебуваєте. +Модуль `directory` показує шлях до поточної теки, урізаючи його до трьох останніх батьківських тек. Шлях до теки також буде скорочений до кореня git-репозиторію, в якому ви перебуваєте. Якщо використовується параметр `fish_style_pwd_dir_length`, замість того, щоб приховувати скорочений шлях, ви побачите скорочену назву кожної теки в залежності від числа, яке ви вказали для цього параметра. -Наприклад, маємо `~/Dev/Nix/nixpkgs/pkgs` де `nixpkgs` є коренем репозиторію, а параметр — `1`. Ви побачите `~/D/N/nixpkgs/pkgs`, тоді як до цього було `nixpkgs/pkg`. +Наприклад, маємо `~/Dev/Nix/nixpkgs/pkgs` де `nixpkgs` є коренем репозиторію, а параметр — `1`. Ви побачите `~/D/N/nixpkgs/pkgs`, тоді як до цього було `nixpkgs/pkgs`. ### Параметри @@ -1091,7 +1103,7 @@ format = 'via [🦕 $version](green bold) ' | `fish_style_pwd_dir_length` | `0` | Кількість символів, які використовуються при застосуванні логіки шляху fish shell pwd. | | `use_logical_path` | `true` | Якщо `true` показувати логічний шлях оболонки через `PWD` або `--logical-path`. Якщо `false` – показувати шлях фізичної файлової системи з розвʼязанням шляхів для символічних посилань. | -`substitutions` дозволяє визначити довільні заміни літер рядків, що зустрічаються в шляху, наприклад, довга префікси мережа або теки розробки (в Java). Зауважте, що це відключить стиль fish у PWD. +`substitutions` дозволяє визначити довільні заміни літер рядків, що зустрічаються в шляху, наприклад, довгі префікси мережі або теки розробки (в Java). Зауважте, що це відключить стиль fish у PWD. ```toml [directory.substitutions] @@ -1099,7 +1111,7 @@ format = 'via [🦕 $version](green bold) ' 'src/com/long/java/path' = 'mypath' ``` -`fish_style_pwd_dir_length` взаємодіє зі стандартними опціями скорочення, по-перше, що може бути дивним, якщо значення не нуль, замість цього будуть показуватись компоненти шляху, які звичайно скорочені, зі вказаною кількістю символів. Наприклад, шлях `/built/this/on/on/rock/and/roll`, який зазвичай показуватиметься як `rock/and/roll`, буде показаний як `/b/t/c/o/rock/and/roll` з `fish_style_pwd_dir_length = 1` — шлях компонентів, які зазвичай вилучаються, показуються одним символом. Для `fish_style_pwd_dir_length = 2` це буде `/bu/th/ci/on/rock/and/roll`. +`fish_style_pwd_dir_length` взаємодіє зі стандартними опціями скорочення, по-перше, що може бути дивним, якщо значення не нуль, замість цього будуть показуватись компоненти шляху, які звичайно скорочені, зі вказаною кількістю символів. Наприклад, шлях `/built/this/city/on/rock/and/roll`, який зазвичай показуватиметься як `rock/and/roll`, буде показаний як `/b/t/c/o/rock/and/roll` з `fish_style_pwd_dir_length = 1` — шлях компонентів, які зазвичай вилучаються, показуються одним символом. Для `fish_style_pwd_dir_length = 2` це буде `/bu/th/ci/on/rock/and/roll`.
@@ -1137,9 +1149,50 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +Модуль `direnv` показує статус rc-файла якщо він існує. Статус включає: шлях до файлу rc, чи він завантажений та, чи `direnv` дозволяє його використання. + +### Параметри + +| Параметр | Стандартно | Опис | +| ------------------- | -------------------------------------- | ------------------------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | Формат модуля. | +| `symbol` | `'direnv '` | Символ, що показується перед direnv context. | +| `style` | `'bold orange'` | Стиль модуля. | +| `disabled` | `true` | Вимикає модуль `direnv`. | +| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. | +| `detect_files` | `['.envrc']` | Які імена файлів мають запускати цей модуль. | +| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | +| `allowed_msg` | `'allowed'` | Повідомлення, що показується коли використання rc-файлу дозволене. | +| `denied_msg` | `'denied'` | Повідомлення, що показується коли використання rc-файлу заборонене. | +| `loaded_msg` | `'loaded'` | Повідомлення, що показується коли rc-файл завантажений. | +| `unloaded_msg` | `'not loaded'` | Повідомлення, що показується коли rc-файл не завантажений. | + +### Змінні + +| Змінна | Приклад | Опис | +| --------- | ------------------- | ----------------------------------------- | +| loaded | `loaded` | Чи завантажений rc-файл. | +| allowed | `denied` | Чи дозволене використання rc-файлу. | +| rc_path | `/home/test/.envrc` | Шлях до rc-файлу. | +| symbol | | Віддзеркалює значення параметра `symbol`. | +| style\* | `red bold` | Віддзеркалює значення параметра `style`. | + +*: Ця змінна може бути використана лише як частина стилю рядка + +### Приклад + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context -Модуль `docker_context` показує поточний [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) якщо його не встановлено у `default`, або якщо `DOCKER_MACHINE_NAME` `DOCKER_HOST` або `DOCKER_CONTEXT` змінні середовища встановлені (оскільки вони призначені для перевизначення контексту). +Модуль `docker_context` показує поточний [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) якщо його не встановлено у `default`, або якщо змінні середовища `DOCKER_MACHINE_NAME`, `DOCKER_HOST` або `DOCKER_CONTEXT` встановлені (оскільки вони призначені для перевизначення контексту). ### Параметри @@ -1177,7 +1230,7 @@ format = 'via [🐋 $context](blue bold)' Модуль `dotnet` показує відповідну версію [.NET Core SDK](https://dotnet.microsoft.com/) для поточної теки. Якщо SDK закріплена в поточній теці, показується закріплена версія. В іншому випадку модуль покаже останню встановлену версію SDK. -Стандартно модуль буде показаний в командному рядку, коли один чи більше з наступних файлів є в теці: +Стандартно модуль буде показаний в командному рядку, коли в теці присутні один чи більше наступних файлів: - `global.json` - `project.json` @@ -1190,9 +1243,9 @@ format = 'via [🐋 $context](blue bold)' Вам також знадобиться .NET Core SDK, встановлений для того, щоб використовувати його правильно. -Всередині, цей модуль використовує власний механізм для виявлення версій. Як правило, він удвічі швидший ніж запуск `dotnet --version`, але він може показувати некоректну версію, якщо ваш проєкт .NET має не звичайне розташування тек. Якщо точність важливіша за швидкість, ви можете вимкнути механізм встановивши `heuristic = false` в налаштуваннях модуля. +Всередині, цей модуль використовує власний механізм для виявлення версій. Як правило, він удвічі швидший ніж запуск `dotnet --version`, але він може показувати некоректну версію, якщо ваш проєкт .NET має незвичайне розташування тек. Якщо точність важливіша за швидкість, ви можете вимкнути механізм встановивши `heuristic = false` в налаштуваннях модуля. -Модуль також показуватиме Target Framework Monamework ([https://docs.microsoft. om/en-us/dotnet/standard/frameworks#supported-target-frameworks](https://docs.microsoft.com/en-us/dotnet/standard/frameworks#supported-target-frameworks)), коли у поточній теці є файл `.csproj`. +Модуль також показуватиме Target Framework Monamework (), коли у поточній теці є файл `.csproj`. ### Параметри @@ -1232,7 +1285,7 @@ heuristic = false ## Elixir -Модуль `elixir` показує поточну встановлену версію [Elixir](https://elixir-lang.org/) та [Erlang/OTP](https://erlang.org/doc/). Типово, модуль показується, якщо виконується будь-яка з наступних умов: +Модуль `elixir` показує поточну встановлену версію [Elixir](https://elixir-lang.org/) та <2">Erlang/OTP. Типово, модуль показується, якщо виконується будь-яка з наступних умов: - Поточна тека містить файл `mix.exs`. @@ -1320,13 +1373,13 @@ format = 'via [ $version](cyan bold) ' ::: tip -Порядок в якому модуль env_var показується може встановлюватись індивідуально додавання `${env_var.foo}` в `format` верхнього рівня (через те, що використовуються крапки, потрібно використовувати `${...}`). Типово, модуль `env_var` покаже усі модулі env_var, в тому порядку того, як вони були визначені. +Порядок в якому модуль env_var показується може встановлюватись індивідуально додаванням `${env_var.foo}` в `format` верхнього рівня (через те, що використовуються крапки, потрібно використовувати `${...}`). Типово, модуль `env_var` покаже усі модулі env_var, в тому порядку, в якому вони були визначені. ::: ::: tip -Кілька змінних оточення можуть бути показані за допомоги `.`. (див. приклад) Якщо опції конфігурації `variable` не встановлено, модуль показуватиме значення змінної після символу `.` під назвою. +Кілька змінних оточення можуть бути показані за допомоги `.`. (див. приклад) Якщо параметр конфігурації `variable` не встановлено, модуль показуватиме значення змінної під назвою тексту після символу `.`. Приклад: наступна конфігурація показуватиме значення змінної середовища USER @@ -1435,7 +1488,7 @@ format = 'via [e $version](bold red) ' | `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | | `symbol` | `'🧅 '` | Символ, який знаходиться перед версією fennel. | | `style` | `'bold green'` | Стиль модуля. | -| `detect_extensions` | `[fnl]` | Які розширення повинні запускати цей модуль. | +| `detect_extensions` | `['fnl']` | Які розширення повинні запускати цей модуль. | | `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | | `detect_folders` | `[]` | Які теки мають запускати цей модуль. | | `disabled` | `false` | Вимикає модуль `fennel`. | @@ -1524,6 +1577,41 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +Модуль `fossil_metrics` покаже кількість доданих та видалених рядків у поточній теці. Потрібна версія Fossil не нижче v2.14 (2021-01-20). + +### Параметри + +| Параметр | Стандартно | Опис | +| -------------------- | ------------------------------------------------------------ | -------------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | Формат модуля. | +| `added_style` | `'bold green'` | Стиль для показу кількості доданих рядків. | +| `deleted_style` | `'bold red'` | Стиль для показу кількості видалених рядків. | +| `only_nonzero_diffs` | `true` | Показувати стан лише для змінених елементів. | +| `disabled` | `true` | Вимикає модуль `fossil_metrics`. | + +### Змінні + +| Змінна | Приклад | Опис | +| ----------------- | ------- | ----------------------------------------------- | +| added | `1` | Поточна кількість доданих рядків | +| deleted | `2` | Поточна кількість видалених рядків | +| added_style\* | | Віддзеркалює значення параметра `added_style` | +| deleted_style\* | | Віддзеркалює значення параметра `deleted_style` | + +*: Ця змінна може бути використана лише як частина стилю рядка + +### Приклад + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) Модуль `gcloud` показує поточну конфігурацію [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. Він базується на файлі `~/.config/gcloud/active_config` та на `~/.config/gcloud/configurations/config_{CONFIG NAME}` і на змінній оточення `CLOUDSDK_CONFIG`. @@ -1681,7 +1769,7 @@ tag_symbol = '🔖 ' ## Git State -Модуль `git_state` показується в теках, які є частиною репозиторію git, під час виконання операцій на зразок _REBASING_, _BISECTING тощо. Інформація про прогрес операції (наприклад, REBASING 3/10), також буде показана якщо вона доступна.

+Модуль `git_state` показується в теках, які є частиною репозиторію git, під час виконання операцій на зразок _REBASING_, _BISECTING_ тощо. Якщо є інформація про прогрес (наприклад, REBASING 3/10), ця інформація також буде показана. ### Параметри @@ -1725,7 +1813,7 @@ cherry_pick = '[🍒 PICKING](bold red)' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: @@ -1767,7 +1855,7 @@ format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' ::: tip -Модуль Git Status дуже повільно працює в теках Windows у середовищі WSL (наприклад, під `/mnt/c/`). Ви можете вимкнути модуль або використати `windows_starship` для використання Windows-native Starship `git_status` для цих шляхів. +Модуль Git Status дуже повільно працює в теках Windows у середовищі WSL (наприклад, під `/mnt/c/`). Ви можете вимкнути модуль або використати `windows_starship` для використання Windows-версії Starship для тримання `git_status` для цих шляхів. ::: @@ -1931,8 +2019,8 @@ format = 'via [$symbol($version )($mod_version )]($style)' | Параметр | Стандартно | Опис | | ---------- | -------------------------- | ----------------------------------------------- | | `format` | `'via [$symbol]($style) '` | Формат модуля. | -| `symbol` | `"🐃 "` | Формат рядка, що представляє символ guix-shell. | -| `style` | `"yellow bold"` | Стиль модуля. | +| `symbol` | `'🐃 '` | Формат рядка, що представляє символ guix-shell. | +| `style` | `'yellow bold'` | Стиль модуля. | | `disabled` | `false` | Вимикає модуль `guix_shell`. | ### Змінні @@ -1969,13 +2057,13 @@ format = 'via [🐂](yellow bold) ' | Параметр | Стандартно | Опис | | ------------------- | ------------------------------------ | ----------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Формат модуля. | -| `version_format` | `"v${raw}"` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | -| `symbol` | `"🅶 "` | Формат рядка, що представляє символ Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Які розширення повинні запускати цей модуль. | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | +| `symbol` | `'🅶 '` | Формат рядка, що представляє символ Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Які розширення повинні запускати цей модуль. | | `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | -| `detect_folders` | `["gradle"]` | В яких теках цей модуль має запускатись. | -| `style` | `"bold bright-cyan"` | Стиль модуля. | +| `detect_folders` | `['gradle']` | В яких теках цей модуль має запускатись. | +| `style` | `'bold bright-cyan'` | Стиль модуля. | | `disabled` | `false` | Вимикає модуль `gradle`. | | `recursive` | `false` | Дозволяє рекурсивний пошук теки `gradle`. | @@ -2034,13 +2122,13 @@ format = 'via [🐂](yellow bold) ' | Параметр | Стандартно | Опис | | ------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Формат модуля. | -| `version_format` | `"v${raw}"` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Які розширення повинні запускати цей модуль. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Які імена файлів мають запускати цей модуль. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Які теки мають запускати цей модуль. | -| `symbol` | `"⌘ "` | Формат рядка, що представляє символ Helm. | -| `style` | `"bold fg:202"` | Стиль модуля. | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Які розширення повинні запускати цей модуль. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Які імена файлів мають запускати цей модуль. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Які теки мають запускати цей модуль. | +| `symbol` | `'⌘ '` | Формат рядка, що представляє символ Helm. | +| `style` | `'bold fg:202'` | Стиль модуля. | | `disabled` | `false` | Вимикає модуль `haxe`. | ### Змінні @@ -2107,14 +2195,15 @@ format = 'via [⎈ $version](bold white) ' ### Параметри -| Параметр | Стандартно | Опис | -| ------------ | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | Показувати назву хоста лише при підключенні через SSH. | -| `ssh_symbol` | `'🌐 '` | Формат рядка для показу символу підключення до SSH-сеансу. | -| `trim_at` | `'.'` | Рядок, у якому назва хоста буде обрізано після першого збігу. `'.'` зупиниться після першої точки. `''` вимкне будь-яке скорочення | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | Формат модуля. | -| `style` | `'bold dimmed green'` | Стиль модуля. | -| `disabled` | `false` | Вимикає модуль `hostname`. | +| Параметр | Стандартно | Опис | +| ----------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Показувати назву хоста лише при підключенні через SSH. | +| `ssh_symbol` | `'🌐 '` | Формат рядка для показу символу підключення до SSH-сеансу. | +| `trim_at` | `'.'` | Рядок, у якому назва хоста буде обрізано після першого збігу. `'.'` зупиниться після першої точки. `''` вимкне будь-яке скорочення. | +| `detect_env_vars` | `[]` | Які змінні середовища повинні запускати цей модуль. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | Формат модуля. | +| `style` | `'bold dimmed green'` | Стиль модуля. | +| `disabled` | `false` | Вимикає модуль `hostname`. | ### Змінні @@ -2126,7 +2215,9 @@ format = 'via [⎈ $version](bold white) ' *: Ця змінна може бути використана лише як частина стилю рядка -### Приклад +### Приклади + +#### Завжди показувати hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Приховувати hostname для віддалених сеансів tmux + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java Модуль `java` показує поточну встановлену версію [Java](https://www.oracle.com/java/). Типово, модуль показується, якщо виконується будь-яка з наступних умов: @@ -2211,7 +2313,7 @@ symbol = '🌟 ' | `style` | `'bold blue'` | Стиль модуля. | | `disabled` | `false` | Вимикає модуль `jobs`. | -*: Цей параметр застарів, використовуйте параметри `number_threshold` і `symbol_threshold` замість цього. +*: Цей параметр застарів, використовуйте параметри `number_threshold` та `symbol_threshold` замість цього. ### Змінні @@ -2327,7 +2429,7 @@ kotlin_binary = 'kotlinc' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. Коли модуль увімкнено, він завжди буде активним, якщо будь-який з параметрів `detect_extensions`, `detect_files` або `detect_folders` встановлені, модуль буде активним тільки в теках, що відповідають умовам. @@ -2335,17 +2437,39 @@ kotlin_binary = 'kotlinc' ### Параметри -| Параметр | Стандартно | Опис | -| ------------------- | ---------------------------------------------------- | -------------------------------------------- | -| `symbol` | `'☸ '` | Символ, що показується перед Кластером. | -| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | Формат модуля. | -| `style` | `'cyan bold'` | Стиль модуля. | -| `context_aliases` | `{}` | Таблиця контекстних псевдонімів. | -| `user_aliases` | `{}` | Таблиця псевдонімів користувача. | -| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. | -| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | -| `detect_folders` | `[]` | Які теки мають запускати цей модуль. | -| `disabled` | `true` | Вимикає модуль `kubernetes`. | +::: warning + +Параметри `context_aliases` та `user_aliases` є застарілими. Використовуйте `contexts` та, відповідно, `context_alias` та `user_alias`, натомість. + +::: + +| Параметр | Стандартно | Опис | +| ------------------- | ---------------------------------------------------- | --------------------------------------------------------- | +| `symbol` | `'☸ '` | Символ, що показується перед Кластером. | +| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | Формат модуля. | +| `style` | `'cyan bold'` | Стиль модуля. | +| `context_aliases`* | `{}` | Таблиця контекстних псевдонімів. | +| `user_aliases`* | `{}` | Таблиця псевдонімів користувача. | +| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. | +| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | +| `detect_folders` | `[]` | Які теки мають запускати цей модуль. | +| `contexts` | `[]` | Кастомізовані стилі та символи для конкретних контекстів. | +| `disabled` | `true` | Вимикає модуль `kubernetes`. | + +*: Цей параметр є застарілими, додайте `contexts`, відповідно, `context_alias` та `user_alias`, натомість. + +Для налаштування стилю модуля для конкретних середовищ використовуйте наступну конфігурацію як частину списку `contexts`: + +| Змінна | Опис | +| ----------------- | --------------------------------------------------------------------------------------------------------- | +| `context_pattern` | **Обовʼязково** Регулярний вираз, що повертає збіг з назвою поточного контексту Kubernetes. | +| `user_pattern` | Регулярний вираз, що відповідає поточному імені користувача Kubernetes. | +| `context_alias` | Псевдонім контексту для показу замість назви повного контексту. | +| `user_alias` | Псевдонім користувача для показу замість повного імені користувача. | +| `style` | Стиль для модуля, при використанні цього контексту. Якщо не вказано, використовуватиметься стиль модуля. | +| `symbol` | Символ для модуля при використанні цього контексту. Якщо не вказано, використовуватиметься символ модуля. | + +Зверніть увагу, що всі регулярні вирази виглядають як `^$` і мають збігатись з усім рядком. Регулярний вираз `*_pattern` може мати групи, які можуть зазначатись у відповідних аліасах як `$name` та `$N` (дивіться приклад нижче та [документації rust Regex::replace()](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). ### Змінні @@ -2368,13 +2492,9 @@ kotlin_binary = 'kotlinc' [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Показує модуль лише у теках, що містять файл `k8s`. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Регулярні вирази +#### Kubernetes Context спец налаштування -Крім простого псевдоніма, `context_aliases` і `user_aliases` також підтримують розширене зіставлення та перейменування за допомогою регулярних виразів. - -Регулярний вираз має збігатися в усьому kube context, на групи захоплення можна посилатися за допомогою `$name` і `$N` при заміні. Трохи більше пояснень в документації [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace). - -Довгі автоматично згенеровані назви кластерів можуть бути визначені та скорочені за допомогою регулярних виразів: +Параметр `contexts` використовується для налаштування того, як виглядає назва контексту Kubernetes (стиль та символ), якщо назва збігається з визначеною регулярним виразом. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml -# Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. -# The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) -# and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +[[kubernetes.contexts]] +# стиль "bold red" + типовий символ, коли назва поточного контексту Kubernetes збігається з "production" *та* поточний користувач +# збігається з "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# стиль "green" + інший символ, коли назва поточного контексту Kubernetes містить openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Використання груп +# Контекст з GKE, AWS та інших хмарних постачальників зазвичай має додаткову інформацію, наприклад регіон/зону. +# Наступний елемент збігається з форматом GKE format (`gke_projectname_zone_cluster-name`) +# та змінює кожний відповідний kube context на більш зрозумілий формат (`gke-cluster-name`): +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2509,7 +2640,7 @@ format = 'via [🌕 $version](bold blue) ' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: @@ -2730,7 +2861,7 @@ format = 'via [☃️ $state( \($name\))](bold blue) ' | `detect_folders` | `['node_modules']` | В яких теках цей модуль має запускатись. | | `style` | `'bold green'` | Стиль модуля. | | `disabled` | `false` | Вимикає модуль `nodejs`. | -| `not_capable_style` | `bold red` | Стиль для модуля, коли версія рушія у package.json не відповідає версії Node.js. | +| `not_capable_style` | `'bold red'` | Стиль для модуля, коли версія рушія у package.json не відповідає версії Node.js. | ### Змінні @@ -2882,7 +3013,7 @@ symbol = '☁️ ' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: @@ -2890,12 +3021,12 @@ symbol = '☁️ ' | Параметр | Стандартно | Опис | | ---------- | --------------------- | ------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | Формат модуля. | -| `style` | `"bold white"` | Стиль модуля. | +| `format` | `'[$symbol]($style)'` | Формат модуля. | +| `style` | `'bold white'` | Стиль модуля. | | `disabled` | `true` | Вимикає модуль `os`. | | `symbols` | | Таблиця символів для кожної операційної системи. | -`symbols` дозволяє визначити довільні символи для кожного типу операційної системи. Типи операційних систем не визначені вашою конфігурацією, використовують стандартну таблицю символів, дивись нижче. На цю мить усі операційні системи, що підтримуються модулем, перераховані нижче. Якщо ви бажаєте додати операційну систему, то можете створити [запит на функцію](https://github.com/starship/starship/issues/new/choose). +`symbols` дозволяє визначити довільні символи для кожного типу операційної системи. Типи операційних систем не визначені вашою конфігурацією, використовують стандартну таблицю символів, дивись нижче. На цю мить усі операційні системи, що підтримуються модулем, перераховані нижче. Якщо ви бажаєте додати операційну систему, то можете створити [відповідний запит](https://github.com/starship/starship/issues/new/choose). ```toml # Це таблиця стандартних символів. @@ -2974,7 +3105,7 @@ Arch = "Arch is the best! " ## Package Version -Модуль `package` показується, коли поточна тека є сховищем для пакунка, і показує його поточну версію. Наразі модуль підтримує такі пакунки: `npm`, `nimble`, `cargo`, `poetry`, `python`, `composer`, `gradle`, `julia`, `mix`, `helm`, `shards`, `daml` and `dart`. +Модуль `package` показується, коли поточна тека є сховищем для пакунка, і показує його поточну версію. Наразі модуль підтримує такі пакунки: `npm`, `nimble`, `cargo`, `poetry`, `python`, `composer`, `gradle`, `julia`, `mix`, `helm`, `shards`, `daml` та `dart`. - [**npm**](https://docs.npmjs.com/cli/commands/npm) — версія пакунка `npm` отримується з `package.json` з поточної теки - [**Cargo**](https://doc.rust-lang.org/cargo/) — версія пакунка `cargo` отримується з `Cargo.toml` з поточної теки @@ -3127,7 +3258,7 @@ format = 'via [🔹 $version](147 bold) ' ::: tip -За замовчуванням, версія Pulumi не показана, тому що отримання версії потребує на порядок більше часу, ніж потрібно іншим плагінам (близько 70мc). Якщо ви все ще хочете увімкнути показ версії, [дивіться приклад нижче](#with-pulumi-version). +Стандартно версія Pulumi не показується, через те що для цього потрібно набагато більше часу ніж на завантаження більшості втулків (~70ms). Якщо ви все ще хочете увімкнути показ версії, [дивіться приклад нижче](#with-pulumi-version). ::: @@ -3245,7 +3376,7 @@ format = 'via [$symbol$version](bold white)' | `symbol` | `'🐍 '` | Формат рядка, що представляє символ Python | | `style` | `'yellow bold'` | Стиль модуля. | | `pyenv_version_name` | `false` | Використовувати pyenv для отримання версії Python | -| `pyenv_prefix` | `pyenv` | Префікс перед версією pyenv, показується якщо pyenv використовується | +| `pyenv_prefix` | `'pyenv'` | Префікс перед версією pyenv, показується якщо pyenv використовується | | `python_binary` | `['python', 'python3', 'python2']` | Налаштовує бінарні файли python, який Starship буде використовувати для отримання версії. | | `detect_extensions` | `['py']` | Які розширення повинні запускати цей модуль | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Назви файлів, які активують модуль | @@ -3254,7 +3385,7 @@ format = 'via [$symbol$version](bold white)' ::: tip -Змінна `python_binary` приймає як рядок, так список рядків. Starship спробує запустити кожен бінарний файл, поки це не дасть результат. Зауважте, що можна змінити двійковий файл, який використовується Starship, щоб отримати версію Python, а не параметрів, які використовуються. +Змінна `python_binary` приймає як рядок, так і список рядків. Starship спробує запустити кожен бінарний файл, поки це не дасть результат. Зауважте, що можна змінити двійковий файл, який використовується Starship, щоб отримати версію Python, а не параметрів, які використовуються. Стандартні значення та порядок для `python_binary` було вибрано так, щоб спочатку ідентифікувати версію Python у середовищах virtualenv/conda (які наразі все ще додають `python`, незалежно від того, чи вказує він на `python3` чи на `python2`). Це може мати побічний ефект: якщо у вас все ще встановлено системний Python 2, він може бути обраний перед будь-яким Python 3 (принаймні в дистрибутивах Linux, які завжди містять символічне посилання `/usr/bin/python` на Python 2). Якщо ви більше не працюєте з Python 2, але не можете видалити системний Python 2, змінивши його на `'python3'`, ви приховаєте будь-яку версію Python 2, див. приклад нижче. @@ -3284,7 +3415,7 @@ pyenv_version_name = true # ~/.config/starship.toml [python] -# Використання лише двійкового файлу `python3` для отримання версії. +# Використання лише `python3` для отримання версії. python_binary = 'python3' ``` @@ -3556,28 +3687,29 @@ symbol = '🌟 ' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: ### Параметри -| Параметр | Стандартно | Опис | -| ---------------------- | ------------------------- | -------------------------------------------------------------- | -| `bash_indicator` | `'bsh'` | Формат рядка, що використовується для bash. | -| `fish_indicator` | `'fsh'` | Формат рядка, що використовується для fish. | -| `zsh_indicator` | `'zsh'` | Формат рядка, що використовується для zsh. | -| `powershell_indicator` | `'psh'` | Формат рядка, що використовується для powershell. | -| `ion_indicator` | `'ion'` | Формат рядка, що використовується для ion. | -| `elvish_indicator` | `'esh'` | Формат рядка, що використовується для elvish. | -| `tcsh_indicator` | `'tsh'` | Формат рядка, що використовується для tcsh. | -| `xonsh_indicator` | `'xsh'` | Формат рядка, що використовується для xonsh. | -| `cmd_indicator` | `'cmd'` | Формат рядка, що використовується для cmd. | -| `nu_indicator` | `'nu'` | Формат рядка, що використовується для nu. | -| `unknown_indicator` | `''` | Типове значення, що буде показане, якщо оболонка не визначена. | -| `format` | `'[$indicator]($style) '` | Формат модуля. | -| `style` | `'white bold'` | Стиль модуля. | -| `disabled` | `true` | Вимикає модуль `shell`. | +| Параметр | Стандартно | Опис | +| ---------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------- | +| `bash_indicator` | `'bsh'` | Формат рядка, що використовується для bash. | +| `fish_indicator` | `'fsh'` | Формат рядка, що використовується для fish. | +| `zsh_indicator` | `'zsh'` | Формат рядка, що використовується для zsh. | +| `powershell_indicator` | `'psh'` | Формат рядка, що використовується для powershell. | +| `pwsh_indicator` | | Формат рядка, що використовується для pwsh. Типове значення віддзеркалює значення `powershell_indicator`. | +| `ion_indicator` | `'ion'` | Формат рядка, що використовується для ion. | +| `elvish_indicator` | `'esh'` | Формат рядка, що використовується для elvish. | +| `tcsh_indicator` | `'tsh'` | Формат рядка, що використовується для tcsh. | +| `xonsh_indicator` | `'xsh'` | Формат рядка, що використовується для xonsh. | +| `cmd_indicator` | `'cmd'` | Формат рядка, що використовується для cmd. | +| `nu_indicator` | `'nu'` | Формат рядка, що використовується для nu. | +| `unknown_indicator` | `''` | Типове значення, що буде показане, якщо оболонка не визначена. | +| `format` | `'[$indicator]($style) '` | Формат модуля. | +| `style` | `'white bold'` | Стиль модуля. | +| `disabled` | `true` | Вимикає модуль `shell`. | ### Змінні @@ -3686,7 +3818,7 @@ format = '[📦 \[$env\]]($style) ' ## Solidity -Модуль `solidity` показує поточну версію [Solidity](https://soliditylang.org/) Модуль буде показано, якщо буде вказано якісь з наступних умов: +Модуль `solidity` показує поточну версію [Solidity](https://soliditylang.org/). Модуль буде показано, якщо буде виконуються наступні умови: - Поточна тека містить файл `.sol` @@ -3694,14 +3826,14 @@ format = '[📦 \[$env\]]($style) ' | Параметр | Стандартно | Опис | | ------------------- | ------------------------------------ | ----------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Формат модуля. | -| `version_format` | `"v${major}.${minor}.${patch}"` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | -| `symbol` | `"S "` | Формат рядка, що представляє символ Solidity | -| `compiler | ["solc"] | Стандартний компілятор Solidity. | -| `detect_extensions` | `["sol"]` | Які розширення повинні запускати цей модуль. | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${major}.${minor}.${patch}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | +| `symbol` | `'S '` | Формат рядка, що представляє символ Solidity | +| `compiler | ['solc'] | Стандартний компілятор Solidity. | +| `detect_extensions` | `['sol']` | Які розширення повинні запускати цей модуль. | | `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. | | `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | -| `style` | `"bold blue"` | Стиль модуля. | +| `style` | `'bold blue'` | Стиль модуля. | | `disabled` | `false` | Вмикає цей модуль. | ### Змінні @@ -3761,7 +3893,7 @@ format = '[$symbol$environment](dimmed blue) ' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: @@ -3822,7 +3954,7 @@ disabled = false ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: @@ -3969,7 +4101,7 @@ format = '[🏎💨 $workspace]($style) ' ::: tip -За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. +Цей модуль типово є вимкненим. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань. ::: @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +Модуль `typst` показує поточну встановлену версію Typst, що використовується в проєкті. + +Типово, модуль показується, якщо виконується будь-яка з наступних умов: + +- Поточна тека містить файл `template.typ` +- Поточна тека містить файл `.typ` + +### Параметри + +| Параметр | Стандартно | Опис | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | +| `symbol` | `'t '` | Формат рядка, що представляє символ Daml | +| `style` | `'bold #0093A7'` | Стиль модуля. | +| `detect_extensions` | `['.typ']` | Які розширення повинні запускати цей модуль. | +| `detect_files` | `['template.typ']` | Які імена файлів мають запускати цей модуль. | +| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | +| `disabled` | `false` | Вимикає модуль `daml`. | + +### Змінні + +| Змінна | Приклад | Опис | +| ------------- | --------- | ------------------------------------------- | +| version | `v0.9.0` | Версія `typst`, псевдонім для typst_version | +| typst_version | `default` | Поточна версія Typest | +| symbol | | Віддзеркалює значення параметра `symbol` | +| style\* | | Віддзеркалює значення параметра `style` | + +*: Ця змінна може бути використана лише як частина стилю рядка + ## Username Модуль `username` показує імʼя активного користувача. Модуль показується, якщо виконується будь-яка з наступних умов: @@ -4204,8 +4369,8 @@ symbol = '⚡️ ' Модулі показуються, якщо виконується будь-яка з наступних умов: -- Поточна тека містить файл, ім'я якого є в `detect_files` -- Поточна тека містить теки, ім'я яких вказано в `detect_folders` +- Поточна тека містить файл, імʼя якого є в `detect_files` +- Поточна тека містить теки, імʼя яких вказано в `detect_folders` - Поточна тека містить файл, розширення якого є в `detect_extensions` - Команда `when` повертає 0 - Поточна операційна система (std::env::consts::OS) збігається з полем `os`, якщо визначено. @@ -4228,7 +4393,7 @@ symbol = '⚡️ ' ::: -::: warning Вихідні дані команди друкуються без екранування +::: warning Результати роботи команди виводяться без екранування Незалежно від результату, який генерує команда, він виводиться в командний рядок у незміненому вигляді. Це означає, що якщо вивід містить спеціальні послідовності, які інтерпретуються оболонкою, вони будуть оброблені та перетворені оболонкою при виводі. Ці спеціальні послідовності є специфічними для оболонки, напр. ви можете написати модуль, який записує послідовності bash, наприклад. `\h`, але цей модуль не працюватиме в оболонці fish або zsh. @@ -4244,7 +4409,7 @@ symbol = '⚡️ ' | `when` | `false` | Або булеве значення (`true` чи `false`, без лапок) або команди shell, що використовуються як умова для показу модуля. У випадку рядка команди, модуль буде показаний, якщо команда повертає код завершення `0`. | | `require_repo` | `false` | Якщо `true`, модуль буде показано лише в шляхах, що містять репозиторій (git). Цей параметр сам по собі не є достатньою умовою для показу модуля за відсутності інших варіантів. | | `shell` | | [Дивіться нижче](#custom-command-shell) | -| `опис` | `''` | Опис модуля, який показується під час запуску `starship explain`. | +| `description` | `''` | Опис модуля, який показується під час запуску `starship explain`. | | `detect_files` | `[]` | Файли, які треба шукати у робочій теці для отримання збігу. | | `detect_folders` | `[]` | Теки, які треба шукати у робочій теці для отримання збігу. | | `detect_extensions` | `[]` | Розширення файлів, які треба шукати у робочій теці для отримання збігу. | @@ -4285,13 +4450,13 @@ shell = ['pwsh', '-Command', '-'] ::: warning Переконайтеся, що ваша оболонка завершує процеси правильно -Якщо ви вказуєте власну команду, переконайтеся, що стандартний Shell, який використовується starship, буде виконувати команді з чистим (graceful) завершенням, за допомогою параметра `shell`. +Якщо ви вказуєте власну команду, переконайтеся, що стандартний Shell, який використовується starship, буде виконувати команди з чистим (graceful) завершенням, за допомогою параметра `shell`. Наприклад, PowerShell потребує параметр `-Command` для виконання однорядкової команди. Пропуск цього параметра може призвести до рекурсивного циклу starship, де оболонка може спробувати знову завантажити повний профіль середовища з самим starship і, отже, повторно виконати власну команду, потрапивши в нескінченний цикл. Параметри, подібні до `-NoProfile` у PowerShell, також рекомендовані для інших оболонок, щоб уникнути додаткового часу завантаження власного профілю під час кожного виклику Starship. -Наразі реалізовано автоматичне виявлення оболонок і правильне додавання параметрів, але можливо, що охоплено не всі оболонки. [Будь ласка, сповістіть про проблему](https://github.com/starship/starship/issues/new/choose) з подробицями про термінал та конфігурацію автозапуску, якщо ви зіткнулись з таким сценарій. +Наразі реалізовано автоматичне виявлення оболонок і правильне додавання параметрів, але можливо, що охоплено не всі оболонки. [Будь ласка, сповістіть про проблему](https://github.com/starship/starship/issues/new/choose) з подробицями про термінал та конфігурацію автозапуску, якщо ви зіткнулись з таким сценарієм. ::: diff --git a/docs/uk-UA/guide/README.md b/docs/uk-UA/guide/README.md index d93495bb..5782ac00 100644 --- a/docs/uk-UA/guide/README.md +++ b/docs/uk-UA/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Слідкуйте за @StarshipPrompt на Twitter" /> + Підтримуйте Україну

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

Android -Встановіть Starship використовуючи будь-який з наступних пакетних менеджерів: +Встановіть Starship використовуючи будь-який з наступних менеджерів пакунків: | Репозиторій | Команда для встановлення | | --------------------------------------------------------------------------------- | ------------------------ | @@ -197,7 +200,7 @@
BSD -Встановіть Starship використовуючи будь-який з наступних пакетних менеджерів: +Встановіть Starship використовуючи будь-який з наступних менеджерів пакунків: | Дистрибутив | Репозиторій | Команда для встановлення | | --------------- | -------------------------------------------------------- | --------------------------------- | @@ -216,7 +219,7 @@ curl -sS https://starship.rs/install.sh | sh ``` -Як варіант, можете встановити Starship через будь-який з наступних пакетних менеджерів: +Як варіант, можете встановити Starship скориставшись будь-яким з наступних менеджерів пакунків: | Дистрибутив | Репозиторій | Команда для встановлення | | ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | @@ -229,6 +232,7 @@ curl -sS https://starship.rs/install.sh | sh | Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | | NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | | Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
@@ -242,7 +246,7 @@ curl -sS https://starship.rs/install.sh | sh curl -sS https://starship.rs/install.sh | sh ``` -Як варіант, можете встановити Starship скориставшись будь-яким з наступних пакетних менеджерів: +Як варіант, можете встановити Starship скориставшись будь-яким з наступних менеджерів пакунків: | Репозиторій | Команда для встановлення | | -------------------------------------------------------- | --------------------------------------- | @@ -256,9 +260,9 @@ curl -sS https://starship.rs/install.sh | sh
Windows -Встановіть останню версію системи за допомогою MSI-інсталятора з розділу [релізів](https://github.com/starship/starship/releases/latest). +Встановіть останню версію для вашої системи за допомогою MSI-інсталятора з розділу [релізів](https://github.com/starship/starship/releases/latest). -Встановіть Starship використовуючи будь-який з наступних менеджерів пакетів: +Встановіть Starship використовуючи будь-який з наступних менеджерів пакунків: | Репозиторій | Команда для встановлення | | -------------------------------------------------------------------------------------------- | --------------------------------------- | @@ -341,7 +345,7 @@ mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` -Додайте наступний рядок наприкінці налаштувань Nushell (знайдіть її за допомоги `$nu.config-path`): +Додайте наступний рядок наприкінці Вашої конфігурації Nushell (знайдіть її виконавши `$nu.config-path`): ```sh use ~/.cache/starship/init.nu @@ -354,7 +358,7 @@ use ~/.cache/starship/init.nu
PowerShell -Додайте наступний рядок наприкінці Вашої конфігурації PowerShell (знайдіть її виконавши `$PROFILE`): +Додайте наступний рядок наприкінці вашої конфігурації PowerShell (знайдіть її виконавши команду `$PROFILE`): ```powershell Invoke-Expression (&starship init powershell) @@ -397,9 +401,9 @@ eval "$(starship init zsh)" ### Крок 3. Налаштуйте starship -Запустіть новий екземпляр вашої оболонки і ви побачите новий яскравий командний рядок. Якщо вас влаштовують стандартні налаштування – насолоджуйтесь результатом! +Запустіть новий екземпляр вашої оболонки і ви побачите новий яскравий командний рядок. Якщо ви задоволені налаштуваннями, насолоджуйтесь! -Якщо ви бажаєте, ви можете продовжити налаштування Starship: +Якщо ви бажаєте додатково налаштувати Starship: - **[Налаштування](https://starship.rs/config/)** – дізнайтесь як налаштувати Starship, щоб підлаштувати командний рядок під свої потреби @@ -425,7 +429,7 @@ eval "$(starship init zsh)" ## ❤️ Спонсори -Підтримайте цей проект [ставши спонсором](https://github.com/sponsors/starship). Ваше імʼя або логотип показуватимуться тут з посиланням на ваш сайт. +Підтримайте цей проєкт [ставши спонсором](https://github.com/sponsors/starship). Ваше імʼя або логотип показуватимуться тут з посиланням на ваш сайт. **Підтримувачі** diff --git a/docs/uk-UA/presets/README.md b/docs/uk-UA/presets/README.md index 50c8fdba..e1dc7d3c 100644 --- a/docs/uk-UA/presets/README.md +++ b/docs/uk-UA/presets/README.md @@ -63,3 +63,9 @@ Цей шаблон створений під враженням від [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Скріншот шаблона Tokyo Night](/presets/img/tokyo-night.png "Натисніть, щоб переглянути шаблон Токіо Night")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +Цей шаблон створено під впливом [Pastel Powerline](./pastel-powerline.md) та [Tokyo Night](./tokyo-night.md). + +[![Скріншот шаблона Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Натисніть, щоб переглянути шаблон Gruvbox Rainbow")](./gruvbox-rainbow) diff --git a/docs/uk-UA/presets/gruvbox-rainbow.md b/docs/uk-UA/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..b6272ae5 --- /dev/null +++ b/docs/uk-UA/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Повернутися до Шаблонів](./README.md#gruvbox-rainbow) + +# Шаблон Gruvbox Rainbow + +Цей шаблон створено під впливом [Pastel Powerline](./pastel-powerline.md) та [Tokyo Night](./tokyo-night.md). + +![Скріншот шаблона Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png) + +### Передумови + +- Встановлений та увімкнений шрифт [Nerd Font](https://www.nerdfonts.com/) у вашому терміналі + +### Налаштування + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Натисніть, щоб завантажити TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/uk-UA/presets/jetpack.md b/docs/uk-UA/presets/jetpack.md new file mode 100644 index 00000000..be6565d3 --- /dev/null +++ b/docs/uk-UA/presets/jetpack.md @@ -0,0 +1,24 @@ +[Повернутися до Шаблонів](./README.md#jetpack) + +# Jetpack + +Цей псевдомінімалістичний шаблон створений під враженням від [geometry](https://github.com/geometry-zsh/geometry) та командного рядка [spaceship](https://github.com/spaceship-prompt/spaceship-prompt). + +> Jetpack використовує колірну тему термінала. + +![Скріншот шаблона Jetpack](/presets/img/jetpack.png) + +### Передумови + +- Потрібна командна оболонка з підтримкою [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt). +- Рекомендується [Jetbrains Mono](https://www.jetbrains.com/lp/mono/). + +### Налаштування + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Натисніть, щоб завантажити TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/vi-VN/config/README.md b/docs/vi-VN/config/README.md index e38d4c4e..72769990 100644 --- a/docs/vi-VN/config/README.md +++ b/docs/vi-VN/config/README.md @@ -206,6 +206,13 @@ Cái này là danh sách các tuỳ chọn cho cấu hình prompt-wide. | `add_newline` | `true` | Chèn dòng trắng giữa các dấu nhắc lệnh. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### Ví dụ @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### Các tuỳ chọn | Tuỳ chọn | Mặc định | Mô tả | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | Bảng của các region alias để hiển thị ngoài tên AWS. | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | Kiểu cho module. | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | Vô hiệu `AWS` module. | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### Options -| Tuỳ chọn | Mặc định | Mô tả | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | -| `detect_files` | `[]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | -| `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | Kiểu cho module. | -| `disabled` | `false` | Disables the `c` module. | +| Tuỳ chọn | Mặc định | Mô tả | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `detect_files` | `[]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | +| `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | Kiểu cho module. | +| `disabled` | `false` | Disables the `c` module. | ### Các biến @@ -671,7 +683,7 @@ Kí tự sẽ nói cho bạn câu lệnh cuối liệu thành công hay thất b Mặc định, nó chỉ thay đổi màu. If you also want to change its shape take a look at [this example](#with-custom-error-shape). -::: warning +::: cảnh báo `vimcmd_symbol` is only supported in cmd, fish and zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` are only supported in fish due to [upstream issues with mode detection in zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148). @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### Options + +| Tuỳ chọn | Mặc định | Mô tả | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | Định dạng cho module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | Kiểu cho module. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `detect_files` | `['.envrc']` | Những tên tệp nào sẽ kích hoạt mô-đun này. | +| `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Các biến + +| Biến | Ví dụ | Mô tả | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Giá trị ghi đè tuỳ chọn `symbol`. | +| style\* | `red bold` | Giá trị ghi đè của `style`. | + +*: Biến này có thể chỉ được sử dụng như một phần của style string + +### Ví dụ + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1427,7 +1480,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe - The current directory contains a file with the `.fnl` extension -### Options +### Các tuỳ chọn | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | Kiểu cho module. | -| `detect_extensions` | `[fnl]` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `detect_extensions` | `['fnl']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | | `detect_files` | `[]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | | `detect_folders` | `[]` | Những thư mục nào nên kích hoạt các mô đun này. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1463,7 +1516,7 @@ symbol = '⫰ ' The `fill` module fills any extra space on the line with a symbol. If multiple `fill` modules are present in a line they will split the space evenly between them. This is useful for aligning other modules. -### Các tuỳ chọn +### Options | Tuỳ chọn | Mặc định | Mô tả | | ---------- | -------------- | --------------------------------- | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### Options + +| Tuỳ chọn | Mặc định | Mô tả | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | Định dạng cho module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Các biến + +| Biến | Ví dụ | Mô tả | +| ----------------- | ----- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: Biến này có thể chỉ được sử dụng như một phần của style string + +### Ví dụ + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) Mô đun `gcloud` hiển thị cấu hình hiện tại của [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. Cái này dựa trên tập tin `~/.config/gcloud/active_config`, `~/.config/gcloud/configurations/config_{CONFIG NAME}` và biến môi trường `CLOUDSDK_CONFIG`. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### Options @@ -1771,7 +1859,7 @@ The Git Status module is very slow in Windows directories (for example under `/m ::: -### Options +### Các tuỳ chọn | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | @@ -1879,7 +1967,7 @@ The `golang` module shows the currently installed version of [Go](https://golang - Thư mục hiện tại chứa một thư mục `Godeps` - Thư mục hiện tại chứa một tệp tin với phần mở rộng `.go` -### Options +### Các tuỳ chọn | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Tuỳ chọn | Mặc định | Mô tả | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | Định dạng cho module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | Kiểu cho module. | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | Kiểu cho module. | | `disabled` | `false` | Disables the `guix_shell` module. | ### Các biến @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Định dạng cho module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `format` | `'via [$symbol($version )]($style)'` | Định dạng cho module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | | `detect_files` | `[]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | -| `detect_folders` | `["gradle"]` | Những thư mục nào sẽ kích hoạt mô-đun này. | -| `style` | `"bold bright-cyan"` | Kiểu cho module. | +| `detect_folders` | `['gradle']` | Những thư mục nào sẽ kích hoạt mô-đun này. | +| `style` | `'bold bright-cyan'` | Kiểu cho module. | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Định dạng cho module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Những thư mục nào nên kích hoạt các mô đun này. | -| `symbol` | `"⌘ "` | Một format string đại diện cho biểu tượng của Helm. | -| `style` | `"bold fg:202"` | Kiểu cho module. | +| `format` | `'via [$symbol($version )]($style)'` | Định dạng cho module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Những tên tệp nào sẽ kích hoạt mô-đun này. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Những thư mục nào nên kích hoạt các mô đun này. | +| `symbol` | `'⌘ '` | Một format string đại diện cho biểu tượng của Helm. | +| `style` | `'bold fg:202'` | Kiểu cho module. | | `disabled` | `false` | Disables the `haxe` module. | ### Các biến @@ -2107,14 +2195,15 @@ Mô đun `hostname` hiển thị hostnam hệ thống. ### Các tuỳ chọn -| Tuỳ chọn | Mặc định | Mô tả | -| ------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | Chỉ hiển thị hostname khi được kết nối tới một phiên SSH. | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | Chuỗi mà hostname được cắt ngắn, sau khi khớp lần đầu tiên. `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | Định dạng cho module. | -| `style` | `'bold dimmed green'` | Kiểu cho module. | -| `disabled` | `false` | Vô hiệu `hastname` module. | +| Tuỳ chọn | Mặc định | Mô tả | +| ----------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Chỉ hiển thị hostname khi được kết nối tới một phiên SSH. | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | Chuỗi mà hostname được cắt ngắn, sau khi khớp lần đầu tiên. `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | Định dạng cho module. | +| `style` | `'bold dimmed green'` | Kiểu cho module. | +| `disabled` | `false` | Vô hiệu `hastname` module. | ### Các biến @@ -2126,7 +2215,9 @@ Mô đun `hostname` hiển thị hostnam hệ thống. *: Biến này có thể chỉ được sử dụng như một phần của style string -### Ví dụ +### Các ví dụ + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). Mặc định module sẽ được hiển thị nếu có bất kì điều kiện nào dưới đây thoả mãn: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. Nếu biến môi trường `$KUBECONFIG` được thiết lập, mô đun sẽ sử dụng cái đó nếu nó không sử dụng `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. Nếu biến môi trường `$KUBECONFIG` được thiết lập, mô đun sẽ sử dụng cái đó nếu nó không sử dụng `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### Các tuỳ chọn +::: cảnh báo + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | Định dạng cho module. | | `style` | `'cyan bold'` | Kiểu cho module. | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | | `detect_files` | `[]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | | `detect_folders` | `[]` | Những thư mục nào nên kích hoạt các mô đun này. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| Biến | Mô tả | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Các biến | Biến | Ví dụ | Mô tả | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Những thư mục nào sẽ kích hoạt mô-đun này. | | `style` | `'bold green'` | Kiểu cho module. | | `disabled` | `false` | Disables the `nodejs` module. | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Các biến @@ -2890,8 +3021,8 @@ Mặc định, mô đun này được vô hiệu. Để kích hoạt nó, thiế | Tuỳ chọn | Mặc định | Mô tả | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | Định dạng cho module. | -| `style` | `"bold white"` | Kiểu cho module. | +| `format` | `'[$symbol]($style)'` | Định dạng cho module. | +| `style` | `'bold white'` | Kiểu cho module. | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ Mặc định module sẽ được hiển thị nếu có bất kì điều ki | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | Kiểu cho module. | | `pyenv_version_name` | `false` | Use pyenv to get Python version | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Tên tệp nào sẽ kích hoạt mô-đun này | @@ -3562,22 +3693,23 @@ Mặc định, mô đun này được vô hiệu. Để kích hoạt nó, thiế ### Các tuỳ chọn -| Tuỳ chọn | Mặc định | Mô tả | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | Định dạng cho module. | -| `style` | `'white bold'` | Kiểu cho module. | -| `disabled` | `true` | Disables the `shell` module. | +| Tuỳ chọn | Mặc định | Mô tả | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | Định dạng cho module. | +| `style` | `'white bold'` | Kiểu cho module. | +| `disabled` | `true` | Disables the `shell` module. | ### Các biến @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Tuỳ chọn | Mặc định | Mô tả | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | Định dạng cho module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `format` | `'via [$symbol($version )]($style)'` | Định dạng cho module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | | `detect_files` | `[]` | Những tên tệp nào sẽ kích hoạt mô-đun này. | | `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | -| `style` | `"bold blue"` | Kiểu cho module. | +| `style` | `'bold blue'` | Kiểu cho module. | | `disabled` | `false` | Disables this module. | ### Các biến @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- Thư mục hiện tại chứa một tập tin `template.typ` +- The current directory contains any `*.typ` file + +### Các tuỳ chọn + +| Tuỳ chọn | Mặc định | Mô tả | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Định dạng cho module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | Kiểu cho module. | +| `detect_extensions` | `['.typ']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `detect_files` | `['template.typ']` | Những tên tệp nào sẽ kích hoạt mô-đun này. | +| `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | +| `disabled` | `false` | Disables the `daml` module. | + +### Các biến + +| Biến | Ví dụ | Mô tả | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Giá trị ghi đè tuỳ chọn `symbol` | +| style\* | | Giá trị ghi đè của `style` | + +*: Biến này có thể chỉ được sử dụng như một phần của style string + ## Username The `username` module shows active user's username. Module cho sẽ được hiện nếu bất kì điều kiện nào dưới đây thoả mãn: diff --git a/docs/vi-VN/guide/README.md b/docs/vi-VN/guide/README.md index 0900d31b..70bc2f10 100644 --- a/docs/vi-VN/guide/README.md +++ b/docs/vi-VN/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="Theo dõi @StarshipPrompt trên Twitter" /> + Stand With Ukraine

@@ -147,8 +152,6 @@ />

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

@@ -236,7 +240,7 @@ Hoặc là, cài đặt Starship bằng một package manager bất kì:
macOS -Cài phiên bản mới nhất cho hệ điều hành của bạn: +Cài đặt phiên bản mới nhất cho hệ điều hành của bạn: ```sh curl -sS https://starship.rs/install.sh | sh diff --git a/docs/vi-VN/presets/README.md b/docs/vi-VN/presets/README.md index 0e28b2a5..ea3f1b6f 100644 --- a/docs/vi-VN/presets/README.md +++ b/docs/vi-VN/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/vi-VN/presets/gruvbox-rainbow.md b/docs/vi-VN/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..5986631c --- /dev/null +++ b/docs/vi-VN/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### Yêu cầu + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### Cấu hình + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/vi-VN/presets/jetpack.md b/docs/vi-VN/presets/jetpack.md new file mode 100644 index 00000000..4b83fa3d --- /dev/null +++ b/docs/vi-VN/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### Cấu hình + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 90ac6fea..316497e0 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -162,7 +162,7 @@ description: Starship是一款轻量级、反应迅速、可自定义的高颜 然后在您的 Nushell 配置文件的最后(使用 `$nu.config-path` 来获取它的路径),添加以下内容: ```sh - use ~/.cache/starship/init.nu + 使用 ~/.cache/starship/init.nu ``` diff --git a/docs/zh-CN/config/README.md b/docs/zh-CN/config/README.md index 9807ad5d..b41d3714 100644 --- a/docs/zh-CN/config/README.md +++ b/docs/zh-CN/config/README.md @@ -206,6 +206,13 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | `add_newline` | `true` | 在 shell 提示符之间插入空行。 | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### 示例 @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### 配置项 | 选项 | 默认值 | 描述 | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | 地区缩写列表,用来显示在 AWS 主机名之后。 | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | 此组件的样式。 | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | 禁用 `AWS` 组件。 | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `c` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `符号` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `c` module. | ### 变量 @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### 配置项 + +| 选项 | 默认值 | 描述 | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | 组件格式化模板。 | +| `符号` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | 此组件的样式。 | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### 变量 + +| 字段 | 示例 | 描述 | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| 符号 | | `symbol`对应值. | +| style\* | `red bold` | `style`对应值. | + +*: 此变量只能作为样式字符串的一部分使用 + +### 示例 + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `符号` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | 此组件的样式。 | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### 配置项 + +| 选项 | 默认值 | 描述 | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | 组件格式化模板。 | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### 变量 + +| 字段 | 示例 | 描述 | +| ----------------- | --- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: 此变量只能作为样式字符串的一部分使用 + +### 示例 + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### 配置项 @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | 选项 | 默认值 | 描述 | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | 组件格式化模板。 | -| `符号` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | 此组件的样式。 | +| `符号` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | 此组件的样式。 | | `disabled` | `false` | Disables the `guix_shell` module. | ### 变量 @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | 选项 | 默认值 | 描述 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | 组件格式化模板。 | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `符号` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | 此组件的样式。 | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | 此组件的样式。 | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | 选项 | 默认值 | 描述 | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | 组件格式化模板。 | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `符号` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | 此组件的样式。 | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `符号` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | 此组件的样式。 | | `disabled` | `false` | Disables the `haxe` module. | ### 变量 @@ -2107,14 +2195,15 @@ format = 'via [⎈ $version](bold white) ' ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | 仅在连接到 SSH 会话时显示主机名。 | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | 当主机名过长被截断时,会截断成第一次匹配该字符串之前的主机名。 `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | 组件格式化模板。 | -| `style` | `'bold dimmed green'` | 此组件的样式。 | -| `disabled` | `false` | 禁用 `hostname` 组件。 | +| 选项 | 默认值 | 描述 | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| `ssh_only` | `true` | 仅在连接到 SSH 会话时显示主机名。 | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | 当主机名过长被截断时,会截断成第一次匹配该字符串之前的主机名。 `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | 组件格式化模板。 | +| `style` | `'bold dimmed green'` | 此组件的样式。 | +| `disabled` | `false` | 禁用 `hostname` 组件。 | ### 变量 @@ -2126,7 +2215,9 @@ format = 'via [⎈ $version](bold white) ' *: 此变量只能作为样式字符串的一部分使用 -### 示例 +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### 配置项 +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | 选项 | 默认值 | 描述 | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `符号` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | 组件格式化模板。 | | `style` | `'cyan bold'` | 此组件的样式。 | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| 字段 | 描述 | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `符号` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### 变量 | 字段 | 示例 | 描述 | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## Line Break @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | 此组件的样式。 | | `disabled` | `false` | 禁用 `nodejs` 组件。 | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### 变量 @@ -2890,8 +3021,8 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known | 选项 | 默认值 | 描述 | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | 组件格式化模板。 | -| `style` | `"bold white"` | 此组件的样式。 | +| `format` | `'[$symbol]($style)'` | 组件格式化模板。 | +| `style` | `'bold white'` | 此组件的样式。 | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `符号` | `'🐍 '` | 用于表示Python的格式化字符串。 | | `style` | `'yellow bold'` | 此组件的样式。 | | `pyenv_version_name` | `false` | 使用 pyenv 获取 Python 版本 | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ The `shell` module shows an indicator for currently used shell. ### 配置项 -| 选项 | 默认值 | 描述 | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | 组件格式化模板。 | -| `style` | `'white bold'` | 此组件的样式。 | -| `disabled` | `true` | Disables the `shell` module. | +| 选项 | 默认值 | 描述 | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | 组件格式化模板。 | +| `style` | `'white bold'` | 此组件的样式。 | +| `disabled` | `true` | Disables the `shell` module. | ### 变量 @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | 选项 | 默认值 | 描述 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | 组件格式化模板。 | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `符号` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | 此组件的样式。 | +| `style` | `'bold blue'` | 此组件的样式。 | | `disabled` | `false` | Disables this module. | ### 变量 @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- 当前目录包含一个 `template.typ` 文件 +- The current directory contains any `*.typ` file + +### 配置项 + +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `符号` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | 此组件的样式。 | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### 变量 + +| 字段 | 示例 | 描述 | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| 符号 | | `symbol`对应值 | +| style\* | | `style`对应值 | + +*: 此变量只能作为样式字符串的一部分使用 + ## Username `username` 组件显示当前活跃的用户名。 此组件将在符合以下任意条件时显示: diff --git a/docs/zh-CN/guide/README.md b/docs/zh-CN/guide/README.md index eeeeebc3..b2b95546 100644 --- a/docs/zh-CN/guide/README.md +++ b/docs/zh-CN/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="在 Twitter 上关注 @Starshipmpt" /> + Stand With Ukraine

@@ -119,7 +124,7 @@ >Українська  

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

Android @@ -224,11 +227,12 @@ curl -sS https://starship.rs/install.sh | sh | _任意发行版_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | | _任意发行版_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | | Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | -| Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | +| Arch Linux | [Arch Linux 额外](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | | CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
`dnf install starship` | | Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | | NixOS | [nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/starship/default.nix) | `nix-env -iA nixpkgs.starship` | +| openSUSE | [OSS](https://software.opensuse.org/package/starship) | `zypper in starship` | | Void Linux | [Void Linux Packages](https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship) | `xbps-install -S starship` |
@@ -270,7 +274,7 @@ curl -sS https://starship.rs/install.sh | sh
-### 步骤 2. Set up your shell to use Starship +### 步骤 2. 设置您的 shell 以使用 Starship 配置你的终端来初始化 starship。 请从下面列表选择你的终端: @@ -341,10 +345,10 @@ mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` -然后将以下内容添加到您 Nushell 配置文件的末尾(使用 `$nu.config-path` 来获取它的路径): +然后在您的 Nushell 配置文件的最后(使用 `$nu.config-path` 来获取它的路径),添加以下内容: ```sh -use ~/.cache/starship/init.nu +使用 ~/.cache/starship/init.nu ``` 注意:仅支持 Nushell v0.78+ diff --git a/docs/zh-CN/presets/README.md b/docs/zh-CN/presets/README.md index 6dd4b87d..1bec89ef 100644 --- a/docs/zh-CN/presets/README.md +++ b/docs/zh-CN/presets/README.md @@ -63,3 +63,9 @@ This preset does not show icons if the toolset is not found. 此预设受 [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme) 的启发。 [![Tokyo Night预设预览](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/zh-CN/presets/gruvbox-rainbow.md b/docs/zh-CN/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..4701cd1a --- /dev/null +++ b/docs/zh-CN/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[返回全部预设](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### 前置要求 + +- 安装一种 [Nerd fonts](https://www.nerdfonts.com/) 并在您的终端启用。 + +### 配置 + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[点击下载 TOML 文件](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/zh-CN/presets/jetpack.md b/docs/zh-CN/presets/jetpack.md new file mode 100644 index 00000000..27ba891e --- /dev/null +++ b/docs/zh-CN/presets/jetpack.md @@ -0,0 +1,24 @@ +[返回全部预设](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### 配置 + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[点击下载 TOML 文件](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml diff --git a/docs/zh-TW/README.md b/docs/zh-TW/README.md index 4b57ac59..3f72e0d4 100644 --- a/docs/zh-TW/README.md +++ b/docs/zh-TW/README.md @@ -179,7 +179,7 @@ description: Starship 是適合任何 shell 的最小、極速、高度客製化 #### 命令提示字元 - You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd. Add the following to a file `starship.lua` and place this file in Clink scripts directory: + 您需要在 Cmd 中使用 [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+)。 Add the following to a file `starship.lua` and place this file in Clink scripts directory: ```lua -- starship.lua diff --git a/docs/zh-TW/config/README.md b/docs/zh-TW/config/README.md index 6626d765..7f0845e4 100644 --- a/docs/zh-TW/config/README.md +++ b/docs/zh-TW/config/README.md @@ -206,6 +206,13 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | + +::: tip + +If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. + +::: ### 範例 @@ -253,6 +260,7 @@ $kubernetes\ $directory\ $vcsh\ $fossil_branch\ +$fossil_metrics\ $git_branch\ $git_commit\ $git_state\ @@ -301,6 +309,7 @@ $scala\ $solidity\ $swift\ $terraform\ +$typst\ $vlang\ $vagrant\ $zig\ @@ -314,6 +323,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$direnv\ $env_var\ $crystal\ $custom\ @@ -351,6 +361,8 @@ When using [AWSume](https://awsu.me) the profile is read from the `AWSUME_PROFIL When using [saml2aws](https://github.com/Versent/saml2aws) the expiration information obtained from `~/.aws/credentials` falls back to the `x_security_token_expires` key. +When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile is read from the `AWS_SSO_PROFILE` env var. + ### 選項 | Option | 預設 | 說明 | @@ -360,7 +372,7 @@ When using [saml2aws](https://github.com/Versent/saml2aws) the expiration inform | `region_aliases` | `{}` | 除了AWS名稱外,顯示區域別名表 | | `profile_aliases` | `{}` | Table of profile aliases to display in addition to the AWS name. | | `style` | `'bold yellow'` | 這個模組的風格。 | -| `expiration_symbol` | `X` | The symbol displayed when the temporary credentials have expired. | +| `expiration_symbol` | `'X'` | The symbol displayed when the temporary credentials have expired. | | `disabled` | `false` | 停用 `AWS` 模組。 | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | @@ -620,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### 選項 -| Option | 預設 | 說明 | -| ------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | How to detect what the compiler is | -| `style` | `'bold 149'` | 這個模組的風格。 | -| `disabled` | `false` | Disables the `c` module. | +| Option | 預設 | 說明 | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | 這個模組的風格。 | +| `disabled` | `false` | Disables the `c` module. | ### Variables @@ -1137,6 +1149,47 @@ truncation_length = 8 truncation_symbol = '…/' ``` +## Direnv + +The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. + +### 選項 + +| Option | 預設 | 說明 | +| ------------------- | -------------------------------------- | ----------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | 這個模組的風格。 | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | + +### Variables + +| 變數 | 範例 | 說明 | +| --------- | ------------------- | --------------------------------------- | +| loaded | `loaded` | Whether the current rc file is loaded. | +| allowed | `denied` | Whether the current rc file is allowed. | +| rc_path | `/home/test/.envrc` | The current rc file path. | +| symbol | | Mirrors the value of option `symbol`. | +| style\* | `red bold` | Mirrors the value of option `style`. | + +*: This variable can only be used as a part of a style string + +### 範例 + +```toml +# ~/.config/starship.toml + +[direnv] +disabled = false +``` + ## Docker Context The `docker_context` module shows the currently active [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) if it's not set to `default` or if the `DOCKER_MACHINE_NAME`, `DOCKER_HOST` or `DOCKER_CONTEXT` environment variables are set (as they are meant to override the context in use). @@ -1435,7 +1488,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | | `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | | `style` | `'bold green'` | 這個模組的風格。 | -| `detect_extensions` | `[fnl]` | Which extensions should trigger this module. | +| `detect_extensions` | `['fnl']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | @@ -1524,11 +1577,46 @@ truncation_length = 4 truncation_symbol = '' ``` +## Fossil Metrics + +The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. + +### 選項 + +| Option | 預設 | 說明 | +| -------------------- | ------------------------------------------------------------ | ------------------------------------- | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | +| `added_style` | `'bold green'` | The style for the added count. | +| `deleted_style` | `'bold red'` | The style for the deleted count. | +| `only_nonzero_diffs` | `true` | Render status only for changed items. | +| `disabled` | `true` | Disables the `fossil_metrics` module. | + +### Variables + +| 變數 | 範例 | 說明 | +| ----------------- | --- | ------------------------------------------- | +| added | `1` | The current number of added lines | +| deleted | `2` | The current number of deleted lines | +| added_style\* | | Mirrors the value of option `added_style` | +| deleted_style\* | | Mirrors the value of option `deleted_style` | + +*: This variable can only be used as a part of a style string + +### 範例 + +```toml +# ~/.config/starship.toml + +[fossil_metrics] +added_style = 'bold blue' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' +``` + ## Google Cloud (`gcloud`) The `gcloud` module shows the current configuration for [`gcloud`](https://cloud.google.com/sdk/gcloud) CLI. This is based on the `~/.config/gcloud/active_config` file and the `~/.config/gcloud/configurations/config_{CONFIG NAME}` file and the `CLOUDSDK_CONFIG` env var. -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active be active when one of the environment variables has been set. +When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. ### 選項 @@ -1931,8 +2019,8 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel | Option | 預設 | 說明 | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | -| `symbol` | `"🐃 "` | A format string representing the symbol of guix-shell. | -| `style` | `"yellow bold"` | 這個模組的風格。 | +| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | +| `style` | `'yellow bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `guix_shell` module. | ### Variables @@ -1969,13 +2057,13 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | Option | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"🅶 "` | A format string representing the symbol of Gradle. | -| `detect_extensions` | `["gradle", "gradle.kts"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `detect_extensions` | `['gradle', 'gradle.kts']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `["gradle"]` | Which folders should trigger this module. | -| `style` | `"bold bright-cyan"` | 這個模組的風格。 | +| `detect_folders` | `['gradle']` | Which folders should trigger this module. | +| `style` | `'bold bright-cyan'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | @@ -2034,13 +2122,13 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | Option | 預設 | 說明 | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${raw}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `["hx", "hxml"]` | Which extensions should trigger this module. | -| `detect_files` | `["project.xml", "Project.xml", "application.xml", "haxelib.json", "hxformat.json", ".haxerc"]` | Which filenames should trigger this module. | -| `detect_folders` | `[".haxelib", "haxe_libraries"]` | Which folders should trigger this modules. | -| `symbol` | `"⌘ "` | A format string representing the symbol of Helm. | -| `style` | `"bold fg:202"` | 這個模組的風格。 | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | +| `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | +| `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `style` | `'bold fg:202'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `haxe` module. | ### Variables @@ -2107,14 +2195,15 @@ format = 'via [⎈ $version](bold white) ' ### 選項 -| Option | 預設 | 說明 | -| ------------ | -------------------------------------- | ------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | 只在連接到一個 SSH session 時顯示主機名稱。 | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | 擷取出主機名稱的斷點,以第一個符合的為準。 `'.'` will stop after the first dot. `''` will disable any truncation | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | -| `style` | `'bold dimmed green'` | 這個模組的風格。 | -| `disabled` | `false` | 停用 `hostname` 模組。 | +| Option | 預設 | 說明 | +| ----------------- | -------------------------------------- | -------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | 只在連接到一個 SSH session 時顯示主機名稱。 | +| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | +| `trim_at` | `'.'` | 擷取出主機名稱的斷點,以第一個符合的為準。 `'.'` will stop after the first dot. `''` will disable any truncation. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | The format for the module. | +| `style` | `'bold dimmed green'` | 這個模組的風格。 | +| `disabled` | `false` | 停用 `hostname` 模組。 | ### Variables @@ -2126,7 +2215,9 @@ format = 'via [⎈ $version](bold white) ' *: This variable can only be used as a part of a style string -### 範例 +### Examples + +#### Always show the hostname ```toml # ~/.config/starship.toml @@ -2138,6 +2229,17 @@ trim_at = '.companyname.com' disabled = false ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Java The `java` module shows the currently installed version of [Java](https://www.oracle.com/java/). By default the module will be shown if any of the following conditions are met: @@ -2323,7 +2425,7 @@ kotlin_binary = 'kotlinc' ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. +Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. If the `$KUBECONFIG` env var is set the module will use that if not it will use the `~/.kube/config`. ::: tip @@ -2335,18 +2437,40 @@ When the module is enabled it will always be active, unless any of `detect_exten ### 選項 +::: warning + +The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. + +::: + | Option | 預設 | 說明 | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | | `style` | `'cyan bold'` | 這個模組的風格。 | -| `context_aliases` | `{}` | Table of context aliases to display. | -| `user_aliases` | `{}` | Table of user aliases to display. | +| `context_aliases`* | `{}` | Table of context aliases to display. | +| `user_aliases`* | `{}` | Table of user aliases to display. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | +*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. + +To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: + +| 變數 | 說明 | +| ----------------- | ---------------------------------------------------------------------------------------- | +| `context_pattern` | **Required** Regular expression to match current Kubernetes context name. | +| `user_pattern` | Regular expression to match current Kubernetes user name. | +| `context_alias` | Context alias to display instead of the full context name. | +| `user_alias` | User alias to display instead of the full user name. | +| `style` | The style for the module when using this context. If not set, will use module's style. | +| `symbol` | The symbol for the module when using this context. If not set, will use module's symbol. | + +Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). + ### Variables | 變數 | 範例 | 說明 | @@ -2368,13 +2492,9 @@ When the module is enabled it will always be active, unless any of `detect_exten [kubernetes] format = 'on [⛵ ($user on )($cluster in )$context \($namespace\)](dimmed green) ' disabled = false -[kubernetes.context_aliases] -'dev.local.cluster.k8s' = 'dev' -'.*/openshift-cluster/.*' = 'openshift' -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' -[kubernetes.user_aliases] -'dev.local.cluster.k8s' = 'dev' -'root/.*' = 'root' +contexts = [ + { context_pattern = "dev.local.cluster.k8s", style = "green", symbol = "💔 " }, +] ``` Only show the module in directories that contain a `k8s` file. @@ -2387,25 +2507,36 @@ disabled = false detect_files = ['k8s'] ``` -#### Regex Matching +#### Kubernetes Context specific config -Additional to simple aliasing, `context_aliases` and `user_aliases` also supports extended matching and renaming using regular expressions. - -The regular expression must match on the entire kube context, capture groups can be referenced using `$name` and `$N` in the replacement. This is more explained in the [regex crate](https://docs.rs/regex/1.5.4/regex/struct.Regex.html#method.replace) documentation. - -Long and automatically generated cluster names can be identified and shortened using regular expressions: +The `contexts` configuration option is used to customise what the current Kubernetes context name looks like (style and symbol) if the name matches the defined regular expression. ```toml -[kubernetes.context_aliases] -# OpenShift contexts carry the namespace and user in the kube context: `namespace/name/user`: -'.*/openshift-cluster/.*' = 'openshift' -# Or better, to rename every OpenShift cluster at once: -'.*/(?P[\w-]+)/.*' = '$var_cluster' +# ~/.config/starship.toml +[[kubernetes.contexts]] +# "bold red" style + default symbol when Kubernetes current context name equals "production" *and* the current user +# equals "admin_user" +context_pattern = "production" +user_pattern = "admin_user" +style = "bold red" +context_alias = "prod" +user_alias = "admin" + +[[kubernetes.contexts]] +# "green" style + a different symbol when Kubernetes current context name contains openshift +context_pattern = ".*openshift.*" +style = "green" +symbol = "💔 " +context_alias = "openshift" + +[[kubernetes.contexts]] +# Using capture groups # Contexts from GKE, AWS and other cloud providers usually carry additional information, like the region/zone. # The following entry matches on the GKE format (`gke_projectname_zone_cluster-name`) # and renames every matching kube context into a more readable format (`gke-cluster-name`): -'gke_.*_(?P[\w-]+)' = 'gke-$var_cluster' +context_pattern = "gke_.*_(?P[\\w-]+)" +context_alias = "gke-$cluster" ``` ## 換行 @@ -2730,7 +2861,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `detect_folders` | `['node_modules']` | Which folders should trigger this module. | | `style` | `'bold green'` | 這個模組的風格。 | | `disabled` | `false` | 停用 `nodejs` 模組。 | -| `not_capable_style` | `bold red` | The style for the module when an engines property in package.json does not match the Node.js version. | +| `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | ### Variables @@ -2890,8 +3021,8 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known | Option | 預設 | 說明 | | ---------- | --------------------- | ------------------------------------------------------ | -| `format` | `"[$symbol]($style)"` | The format for the module. | -| `style` | `"bold white"` | 這個模組的風格。 | +| `format` | `'[$symbol]($style)'` | The format for the module. | +| `style` | `'bold white'` | 這個模組的風格。 | | `disabled` | `true` | Disables the `os` module. | | `symbols` | | A table that maps each operating system to its symbol. | @@ -3245,7 +3376,7 @@ By default the module will be shown if any of the following conditions are met: | `symbol` | `'🐍 '` | A format string representing the symbol of Python | | `style` | `'yellow bold'` | 這個模組的風格。 | | `pyenv_version_name` | `false` | 使用 pyenv 取得 Python 的版本。 | -| `pyenv_prefix` | `pyenv` | Prefix before pyenv version display, only used if pyenv is used | +| `pyenv_prefix` | `'pyenv'` | Prefix before pyenv version display, only used if pyenv is used | | `python_binary` | `['python', 'python3', 'python2']` | Configures the python binaries that Starship should executes when getting the version. | | `detect_extensions` | `['py']` | Which extensions should trigger this module | | `detect_files` | `['.python-version', 'Pipfile', '__init__.py', 'pyproject.toml', 'requirements.txt', 'setup.py', 'tox.ini']` | Which filenames should trigger this module | @@ -3562,22 +3693,23 @@ The `shell` module shows an indicator for currently used shell. ### 選項 -| Option | 預設 | 說明 | -| ---------------------- | ------------------------- | ------------------------------------------------------------ | -| `bash_indicator` | `'bsh'` | A format string used to represent bash. | -| `fish_indicator` | `'fsh'` | A format string used to represent fish. | -| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | -| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | -| `ion_indicator` | `'ion'` | A format string used to represent ion. | -| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | -| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | -| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | -| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | -| `nu_indicator` | `'nu'` | A format string used to represent nu. | -| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | -| `format` | `'[$indicator]($style) '` | The format for the module. | -| `style` | `'white bold'` | 這個模組的風格。 | -| `disabled` | `true` | Disables the `shell` module. | +| Option | 預設 | 說明 | +| ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | +| `bash_indicator` | `'bsh'` | A format string used to represent bash. | +| `fish_indicator` | `'fsh'` | A format string used to represent fish. | +| `zsh_indicator` | `'zsh'` | A format string used to represent zsh. | +| `powershell_indicator` | `'psh'` | A format string used to represent powershell. | +| `pwsh_indicator` | | A format string used to represent pwsh. The default value mirrors the value of `powershell_indicator`. | +| `ion_indicator` | `'ion'` | A format string used to represent ion. | +| `elvish_indicator` | `'esh'` | A format string used to represent elvish. | +| `tcsh_indicator` | `'tsh'` | A format string used to represent tcsh. | +| `xonsh_indicator` | `'xsh'` | A format string used to represent xonsh. | +| `cmd_indicator` | `'cmd'` | A format string used to represent cmd. | +| `nu_indicator` | `'nu'` | A format string used to represent nu. | +| `unknown_indicator` | `''` | The default value to be displayed when the shell is unknown. | +| `format` | `'[$indicator]($style) '` | The format for the module. | +| `style` | `'white bold'` | 這個模組的風格。 | +| `disabled` | `true` | Disables the `shell` module. | ### Variables @@ -3694,14 +3826,14 @@ The `solidity` module shows the currently installed version of [Solidity](https: | Option | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `"via [$symbol($version )]($style)"` | The format for the module. | -| `version_format` | `"v${major}.${minor}.${patch}"` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `"S "` | A format string representing the symbol of Solidity | -| `compiler | ["solc"] | The default compiler for Solidity. | -| `detect_extensions` | `["sol"]` | Which extensions should trigger this module. | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `"bold blue"` | 這個模組的風格。 | +| `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables this module. | ### Variables @@ -4009,6 +4141,39 @@ utc_time_offset = '-5' time_range = '10:00:00-14:00:00' ``` +## Typst + +The `typst` module shows the current installed version of Typst used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- 目前資料夾中有一個 `template.typ` 檔案 +- The current directory contains any `*.typ` file + +### 選項 + +| Option | 預設 | 說明 | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | 這個模組的風格。 | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `daml` module. | + +### Variables + +| 變數 | 範例 | 說明 | +| ------------- | --------- | ----------------------------------------------- | +| version | `v0.9.0` | The version of `typst`, alias for typst_version | +| typst_version | `default` | The current Typst version | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## 使用者名稱 `username` 模組顯示現在使用中的使用者名稱。 這個模組將在下列其中一個條件滿足時顯示: diff --git a/docs/zh-TW/guide/README.md b/docs/zh-TW/guide/README.md index c93a1f46..f17404c2 100644 --- a/docs/zh-TW/guide/README.md +++ b/docs/zh-TW/guide/README.md @@ -32,6 +32,11 @@ src="https://img.shields.io/badge/twitter-@StarshipPrompt-1DA1F3?style=flat-square" alt="在推特上追蹤 @StarshipPrompt" /> + Stand With Ukraine

@@ -79,7 +84,7 @@ >Bahasa Indonesia   Italiano   Português do Brasil   Русский   Українська  

-[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine) -

@@ -270,7 +274,7 @@ Install Starship using any of the following package managers:
-### 第二步 Set up your shell to use Starship +### 第二步 設定您的 shell 以啟用 Starship 設定您的 shell 以啟用 Starship。 請從下列選單選取您的 shell: @@ -288,7 +292,7 @@ eval "$(starship init bash)"
命令提示字元 -You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd. Create a file at this path `%LocalAppData%\clink\starship.lua` with the following contents: +您需要在 Cmd 中使用 [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+)。 在此路徑 `%LocalAppData%\clink\starship.lua` 建立一個檔案,並填入以下內容: ```lua load(io.popen('starship init cmd'):read("*a"))() @@ -305,7 +309,7 @@ load(io.popen('starship init cmd'):read("*a"))() eval (starship init elvish) ``` -Note: Only Elvish v0.18+ is supported +注意:只支援 Elvish v0.18+ 以上的版本
@@ -376,7 +380,7 @@ eval `starship init tcsh`
Xonsh -將以下內容放到 `~/.xonshrc` 的結尾: +將以下內容加到 `~/.xonshrc` 的結尾: ```python execx($(starship init xonsh)) @@ -423,13 +427,13 @@ eval "$(starship init zsh)" - **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons. -## ❤️ Sponsors +## ❤️ 贊助我們 -Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. +你可以[成爲一個贊助者](https://github.com/sponsors/starship)來支持這個專案! 你的名字和頭像會在這裏顯示,並且會帶有一個前往你網站的鏈接。 -**Supporter Tier** +**贊助者等級** -- [Appwrite](https://appwrite.io/) +- [後端](https://appwrite.io/)


diff --git a/docs/zh-TW/presets/README.md b/docs/zh-TW/presets/README.md index 7bc035a3..0e6678b3 100644 --- a/docs/zh-TW/presets/README.md +++ b/docs/zh-TW/presets/README.md @@ -63,3 +63,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme). [![Screenshot of Tokyo Night preset](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) + +## [Gruvbox Rainbow](./gruvbox-rainbow.md) + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/zh-TW/presets/gruvbox-rainbow.md b/docs/zh-TW/presets/gruvbox-rainbow.md new file mode 100644 index 00000000..d1f3c343 --- /dev/null +++ b/docs/zh-TW/presets/gruvbox-rainbow.md @@ -0,0 +1,21 @@ +[Return to Presets](./README.md#gruvbox-rainbow) + +# Gruvbox Rainbow Preset + +This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). + +![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) + +### 先決要求 + +- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal + +### 設定 + +```sh +starship preset gruvbox-rainbow -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/gruvbox-rainbow.toml) + +<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/zh-TW/presets/jetpack.md b/docs/zh-TW/presets/jetpack.md new file mode 100644 index 00000000..0d85a56b --- /dev/null +++ b/docs/zh-TW/presets/jetpack.md @@ -0,0 +1,24 @@ +[Return to Presets](./README.md#jetpack) + +# Jetpack Preset + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +> Jetpack uses the terminal's color theme. + +![Screenshot of Jetpack preset](/presets/img/jetpack.png) + +### Prerequisite + +- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. +- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. + +### 設定 + +```sh +starship preset jetpack -o ~/.config/starship.toml +``` + +[Click to download TOML](/presets/toml/jetpack.toml) + +<<< @/.vuepress/public/presets/toml/jetpack.toml From 88e1471b64cd9a32c60cdd6753e9c62bbeae2e84 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 19:29:58 +0100 Subject: [PATCH 053/651] chore(master): release 1.17.0 (#5348) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 310ce9f3..9de27f44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # Changelog +## [1.17.0](https://github.com/starship/starship/compare/v1.16.0...v1.17.0) (2023-12-28) + + +### Features + +* add additional exit status code meanings from libc ([#5412](https://github.com/starship/starship/issues/5412)) ([81c7d0c](https://github.com/starship/starship/commit/81c7d0cc5805dc10018f0589a6671e1b727a0e9c)) +* add typst module ([7b21705](https://github.com/starship/starship/commit/7b217056bdb8dcb5b328b51fa3b68fe837f9fb3c)) +* **aws:** Adding the AWS SSO CLI env variable to profile list ([#5640](https://github.com/starship/starship/issues/5640)) ([6d96df3](https://github.com/starship/starship/commit/6d96df3c6828161bb9dc922fe45ef35a1ce33771)) +* **direnv:** add new direnv module ([#5157](https://github.com/starship/starship/issues/5157)) ([e47bfba](https://github.com/starship/starship/commit/e47bfbabb9b7d6af12a29db9413a6ec03fba174b)) +* **fossil_metrics:** add fossil_metrics module ([#4874](https://github.com/starship/starship/issues/4874)) ([e867cda](https://github.com/starship/starship/commit/e867cda1eb90ba452768bd2e0738afc2fd0db613)) +* **hostname:** add detect_env_vars as option ([#5196](https://github.com/starship/starship/issues/5196)) ([43b2d42](https://github.com/starship/starship/commit/43b2d42cd526e34c5f0290e7409fbd6d3a54e908)) +* **kubernetes:** Add styling based on current context ([#4550](https://github.com/starship/starship/issues/4550)) ([6b444e0](https://github.com/starship/starship/commit/6b444e05c688f9b871d0fe4624cd5559eba1f95c)) +* R lang packages version, remove .Rprofile from rlang detection ([#5588](https://github.com/starship/starship/issues/5588)) ([5267c46](https://github.com/starship/starship/commit/5267c464eb5e4b23e44cdb7c56919991f4f67ae3)) +* **scanner:** add option not to follow symlinks ([#5325](https://github.com/starship/starship/issues/5325)) ([7b851fc](https://github.com/starship/starship/commit/7b851fc30e109213e911eec38460315872f1ae59)) +* **shell:** allow distinguishing between pwsh and powershell ([#5478](https://github.com/starship/starship/issues/5478)) ([d7a34b4](https://github.com/starship/starship/commit/d7a34b45f88ced63bd79a582c14a6b2f8ebd9544)) + + +### Bug Fixes + +* **bash:** unbound variable error with STARSHIP_PREEXEC_READY ([#5438](https://github.com/starship/starship/issues/5438)) ([8168c21](https://github.com/starship/starship/commit/8168c21293de8118af1e95778b1eee8f26cd6d6a)) +* **docker_context:** ignore unix domain socket path from Docker Context ([#5616](https://github.com/starship/starship/issues/5616)) ([a910e09](https://github.com/starship/starship/commit/a910e094f77ba6d67349a561e5e9780becfe823a)), closes [#5548](https://github.com/starship/starship/issues/5548) +* **git_status:** Avoid printing error on missing stash ref ([#5434](https://github.com/starship/starship/issues/5434)) ([00d3dc8](https://github.com/starship/starship/commit/00d3dc86a21d11aede96f81ffbe49babe487984e)) +* **git:** prevent `core.fsmonitor` from executing external commands ([#3981](https://github.com/starship/starship/issues/3981)) ([03278e4](https://github.com/starship/starship/commit/03278e4de4f540cbd0e346e9df878c7e6798d757)) +* **install:** do not use curl installed through snap ([#5442](https://github.com/starship/starship/issues/5442)) ([0e73817](https://github.com/starship/starship/commit/0e738175c57d5789350b996b69c5713aac03835e)) +* **pastel-powerline:** remove `$path` from docker-context module format string ([#5534](https://github.com/starship/starship/issues/5534)) ([6abc83d](https://github.com/starship/starship/commit/6abc83decdf176842985b4daa5b09771c6b93415)) + + +### Performance Improvements + +* **git_status:** avoid running in bare repos ([#5581](https://github.com/starship/starship/issues/5581)) ([ac4a839](https://github.com/starship/starship/commit/ac4a83910357d69950ca304a3fb41d1d39bc3592)) +* Skip unnecessary indirection in starship init zsh ([#5322](https://github.com/starship/starship/issues/5322)) ([5ca8daa](https://github.com/starship/starship/commit/5ca8daacd4ce936f97170f814a780b34bfaa486e)) + ## [1.16.0](https://github.com/starship/starship/compare/v1.15.0...v1.16.0) (2023-07-30) diff --git a/Cargo.lock b/Cargo.lock index 45eed417..aa886b82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2787,7 +2787,7 @@ dependencies = [ [[package]] name = "starship" -version = "1.16.0" +version = "1.17.0" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index 9d3b1070..c7833b5b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starship" -version = "1.16.0" +version = "1.17.0" authors = ["Starship Contributors"] build = "build.rs" categories = ["command-line-utilities"] From 89dc19214bb671fe50a8f1be79a4594e7998ddea Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 30 Dec 2023 17:28:50 +0100 Subject: [PATCH 054/651] fix: v1.17.0 post-release fix-ups (#5660) * chore: cargo update * chore(fmt): ignore `bn-BD`-tl in dprint * ci(release): downgrade node in `notarize_and_pkgbuild` * refactor(dprint): use generic excludes for translated docs --- .dprint.json | 24 +- .github/workflows/release.yml | 5 + Cargo.lock | 434 ++++++++++++++++++---------------- 3 files changed, 244 insertions(+), 219 deletions(-) diff --git a/.dprint.json b/.dprint.json index b144d976..60535dff 100644 --- a/.dprint.json +++ b/.dprint.json @@ -18,26 +18,10 @@ "**/node_modules", "**/*-lock.json", ".github/*", - "docs/ar-SA/**", - "docs/ckb-IR/**", - "docs/de-DE/**", - "docs/es-ES/**", - "docs/fr-FR/**", - "docs/id-ID/**", - "docs/it-IT/**", - "docs/ja-JP/**", - "docs/ko-KR/**", - "docs/nl-NL/**", - "docs/no-NO/**", - "docs/pl-PL/**", - "docs/pt-BR/**", - "docs/pt-PT/**", - "docs/ru-RU/**", - "docs/tr-TR/**", - "docs/uk-UA/**", - "docs/vi-VN/**", - "docs/zh-CN/**", - "docs/zh-TW/**", + "docs/??-??/**", + "docs/??-???/**", + "docs/???-??/**", + "docs/???-???/**", "target/" ], "plugins": [ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ba52a75b..1219eb9e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -214,6 +214,11 @@ jobs: # Add Apple Developer ID credentials to keychain xcrun notarytool store-credentials "$KEYCHAIN_ENTRY" --team-id "$APPLEID_TEAMID" --apple-id "$APPLEID_USERNAME" --password "$APPLEID_PASSWORD" --keychain "$KEYCHAIN_PATH" + - name: Setup | Node + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Notarize | Build docs run: | cd docs diff --git a/Cargo.lock b/Cargo.lock index aa886b82..3391e755 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" dependencies = [ "anstyle", "anstyle-parse", @@ -54,37 +54,37 @@ checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" [[package]] name = "arc-swap" @@ -110,26 +110,28 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.9.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 2.5.3", + "event-listener 4.0.1", + "event-listener-strategy", "futures-core", + "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" dependencies = [ - "async-lock", + "async-lock 3.2.0", "async-task", "concurrent-queue", "fastrand 2.0.1", - "futures-lite", + "futures-lite 2.1.0", "slab", ] @@ -139,10 +141,10 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" dependencies = [ - "async-lock", + "async-lock 2.8.0", "autocfg", "blocking", - "futures-lite", + "futures-lite 1.13.0", ] [[package]] @@ -151,11 +153,11 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ - "async-lock", + "async-lock 2.8.0", "autocfg", "cfg-if", "concurrent-queue", - "futures-lite", + "futures-lite 1.13.0", "log", "parking", "polling 2.8.0", @@ -167,22 +169,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.1.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10da8f3146014722c89e7859e1d7bb97873125d7346d10ca642ffab794355828" +checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" dependencies = [ - "async-lock", + "async-lock 3.2.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite", + "futures-lite 2.1.0", "parking", - "polling 3.3.0", + "polling 3.3.1", "rustix 0.38.28", "slab", "tracing", - "waker-fn", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -194,6 +195,17 @@ dependencies = [ "event-listener 2.5.3", ] +[[package]] +name = "async-lock" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +dependencies = [ + "event-listener 4.0.1", + "event-listener-strategy", + "pin-project-lite", +] + [[package]] name = "async-process" version = "1.8.1" @@ -201,12 +213,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" dependencies = [ "async-io 1.13.0", - "async-lock", + "async-lock 2.8.0", "async-signal", "blocking", "cfg-if", - "event-listener 3.0.1", - "futures-lite", + "event-listener 3.1.0", + "futures-lite 1.13.0", "rustix 0.38.28", "windows-sys 0.48.0", ] @@ -219,7 +231,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -228,8 +240,8 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.1.0", - "async-lock", + "async-io 2.2.2", + "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", @@ -242,19 +254,19 @@ dependencies = [ [[package]] name = "async-task" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -313,25 +325,25 @@ dependencies = [ [[package]] name = "blocking" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ "async-channel", - "async-lock", + "async-lock 3.2.0", "async-task", "fastrand 2.0.1", "futures-io", - "futures-lite", + "futures-lite 2.1.0", "piper", "tracing", ] [[package]] name = "bstr" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "regex-automata", @@ -396,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.11" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" dependencies = [ "clap_builder", "clap_derive", @@ -406,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.11" +version = "4.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" dependencies = [ "anstream", "anstyle", @@ -436,7 +448,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -468,9 +480,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] @@ -517,9 +529,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -527,9 +539,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" @@ -551,9 +563,9 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +checksum = "6eb9105919ca8e40d437fc9cbb8f1975d916f1bd28afe795a48aae32a2cc8920" dependencies = [ "cfg-if", "crossbeam-channel", @@ -565,9 +577,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -575,9 +587,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -586,22 +598,20 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -609,9 +619,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -648,9 +658,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" dependencies = [ "powerfmt", ] @@ -777,7 +787,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -825,9 +835,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cec0252c2afff729ee6f00e903d479fba81784c8e2bd77447673471fdfaea1" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", @@ -835,10 +845,31 @@ dependencies = [ ] [[package]] -name = "faster-hex" -version = "0.8.1" +name = "event-listener" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a" +checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.1", + "pin-project-lite", +] + +[[package]] +name = "faster-hex" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" dependencies = [ "serde", ] @@ -871,14 +902,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", + "redox_syscall", + "windows-sys 0.52.0", ] [[package]] @@ -901,9 +932,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -916,15 +947,15 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -942,22 +973,35 @@ dependencies = [ ] [[package]] -name = "futures-sink" -version = "0.3.29" +name = "futures-lite" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +dependencies = [ + "fastrand 2.0.1", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-core", "futures-io", @@ -981,9 +1025,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -1080,9 +1124,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.32.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada0e0b904b17a3f2636b70a33e2c8b075b8eb947db80f6c6e94549f2d5b78d1" +checksum = "0341471d55d8676e98b88e121d7065dfa4c9c5acea4b6d6ecdd2846e85cce0c3" dependencies = [ "bstr", "gix-config-value", @@ -1196,9 +1240,9 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c1e554a87759e672c7d2e37211e761aa390c61ffcd3753a57c51173143f3cb" +checksum = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0" dependencies = [ "faster-hex", "thiserror", @@ -1211,15 +1255,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca" dependencies = [ "gix-hash", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "parking_lot", ] [[package]] name = "gix-index" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ce8d03ec25de952be7d2a9adce2a4c2cb8f7fc2d4c25be91301be9707f380b" +checksum = "f3f308f5cd2992e96a274b0d1931e9a0e44fdcba87695ead3f6df30d8a697e9c" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1242,9 +1286,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "11.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4feb1dcd304fe384ddc22edba9dd56a42b0800032de6537728cea2f033a4f37" +checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37" dependencies = [ "gix-tempfile", "gix-utils", @@ -1259,7 +1303,7 @@ checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -1347,9 +1391,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.39.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac23ed741583c792f573c028785db683496a6dfcd672ec701ee54ba6a77e1ff" +checksum = "3b2069adc212cf7f3317ef55f6444abd06c50f28479dbbac5a86acf3b05cbbfe" dependencies = [ "gix-actor", "gix-date", @@ -1425,9 +1469,9 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "11.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05cc2205cf10d99f70b96e04e16c55d4c7cf33efc151df1f793e29fd12a931f8" +checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23" dependencies = [ "gix-fs", "libc", @@ -1511,9 +1555,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "heck" @@ -1567,9 +1611,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1593,7 +1637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.3", "serde", ] @@ -1662,15 +1706,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -1711,7 +1755,7 @@ checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ "bitflags 2.4.1", "libc", - "redox_syscall 0.4.1", + "redox_syscall", ] [[package]] @@ -1784,9 +1828,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -1802,15 +1846,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375" +checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" dependencies = [ "libc", ] @@ -1856,9 +1900,9 @@ dependencies = [ [[package]] name = "mockall" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a978c8292954bcb9347a4e28772c0a0621166a1598fc1be28ac0076a4bb810e" +checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" dependencies = [ "cfg-if", "downcast", @@ -1871,14 +1915,14 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2765371d0978ba4ace4ebef047baa62fc068b431e468444b5610dd441c639b" +checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -2043,7 +2087,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f" dependencies = [ "dlv-list", - "hashbrown 0.14.2", + "hashbrown 0.14.3", ] [[package]] @@ -2091,7 +2135,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall", "smallvec", "windows-targets 0.48.5", ] @@ -2120,9 +2164,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -2155,7 +2199,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -2232,9 +2276,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "polling" @@ -2254,16 +2298,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", "rustix 0.38.28", "tracing", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2317,9 +2361,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" dependencies = [ "unicode-ident", ] @@ -2419,15 +2463,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -2516,9 +2551,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "same-file" @@ -2602,7 +2637,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -2635,14 +2670,14 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -2771,9 +2806,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "socket2" @@ -2884,9 +2919,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.38" +version = "2.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" dependencies = [ "proc-macro2", "quote", @@ -2925,7 +2960,7 @@ checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall 0.4.1", + "redox_syscall", "rustix 0.38.28", "windows-sys 0.52.0", ] @@ -3002,29 +3037,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] name = "time" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", "itoa", @@ -3044,9 +3079,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -3149,7 +3184,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", ] [[package]] @@ -3175,10 +3210,11 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uds_windows" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ + "memoffset 0.9.0", "tempfile", "winapi", ] @@ -3203,15 +3239,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-bom" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552" +checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" @@ -3258,9 +3294,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -3334,9 +3370,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3344,24 +3380,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3369,22 +3405,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.43", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "which" @@ -3598,9 +3634,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.25" +version = "0.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94" +checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" dependencies = [ "memchr", ] @@ -3643,7 +3679,7 @@ dependencies = [ "async-executor", "async-fs", "async-io 1.13.0", - "async-lock", + "async-lock 2.8.0", "async-process", "async-recursion", "async-task", From cd0fdb7ce0501cd101c7bb33352efcf609f72c80 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 30 Dec 2023 17:29:37 +0100 Subject: [PATCH 055/651] chore: apply new rust 1.75 & nightly clippy fixes (#5646) chore: apply clippy fixes --- src/context.rs | 2 +- src/main.rs | 6 +++--- src/modules/direnv.rs | 26 ++++++++++++++++---------- src/modules/dotnet.rs | 4 ++-- src/modules/fossil_metrics.rs | 4 ++-- src/modules/kubernetes.rs | 21 +++++++++------------ src/modules/nix_shell.rs | 2 +- src/modules/openstack.rs | 2 +- src/modules/python.rs | 8 ++++---- src/modules/rust.rs | 12 ++++++------ src/modules/shlvl.rs | 2 +- src/print.rs | 4 ++-- src/utils.rs | 2 +- 13 files changed, 49 insertions(+), 46 deletions(-) diff --git a/src/context.rs b/src/context.rs index 56074469..1bd9c560 100644 --- a/src/context.rs +++ b/src/context.rs @@ -244,7 +244,7 @@ impl<'a> Context<'a> { .any(|env_var| self.get_env(env_var).is_some()) } - /// Returns true if 'detect_env_vars' is empty, + /// Returns true if `detect_env_vars` is empty, /// or if at least one environment variable is set and no negated environment variable is set pub fn detect_env_vars(&'a self, env_vars: &'a [&'a str]) -> bool { if env_vars.is_empty() { diff --git a/src/main.rs b/src/main.rs index cc30950a..1e22ce6c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -188,7 +188,7 @@ fn main() { (_, _, true) => Target::Continuation, (_, _, _) => Target::Main, }; - print::prompt(properties, target) + print::prompt(properties, target); } Commands::Module { name, @@ -211,7 +211,7 @@ fn main() { let context = Context::default(); if let Some(name) = name { if let Some(value) = value { - configure::update_configuration(&context, &name, &value) + configure::update_configuration(&context, &name, &value); } } else if let Err(reason) = configure::edit_configuration(&context, None) { eprintln!("Could not edit configuration: {reason}"); @@ -222,7 +222,7 @@ fn main() { configure::print_configuration(&Context::default(), default, &name); } Commands::Toggle { name, value } => { - configure::toggle_configuration(&Context::default(), &name, &value) + configure::toggle_configuration(&Context::default(), &name, &value); } Commands::BugReport => bug_report::create(), Commands::Time => { diff --git a/src/modules/direnv.rs b/src/modules/direnv.rs index 4f67800e..6378cb96 100644 --- a/src/modules/direnv.rs +++ b/src/modules/direnv.rs @@ -117,8 +117,8 @@ impl FromStr for AllowStatus { fn from_str(s: &str) -> Result { match s { - "true" => Ok(AllowStatus::Allowed), - "false" => Ok(AllowStatus::Denied), + "true" => Ok(Self::Allowed), + "false" => Ok(Self::Denied), _ => Err(Cow::from("invalid allow status")), } } @@ -152,7 +152,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -169,7 +169,7 @@ mod tests { ); assert_eq!( - Some(format!("direnv not loaded/allowed ")), + Some("direnv not loaded/allowed ".to_string()), renderer.collect() ); @@ -180,7 +180,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -196,7 +196,10 @@ mod tests { }), ); - assert_eq!(Some(format!("direnv loaded/allowed ")), renderer.collect()); + assert_eq!( + Some("direnv loaded/allowed ".to_string()), + renderer.collect() + ); dir.close() } @@ -205,7 +208,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -221,13 +224,16 @@ mod tests { }), ); - assert_eq!(Some(format!("direnv loaded/denied ")), renderer.collect()); + assert_eq!( + Some("direnv loaded/denied ".to_string()), + renderer.collect() + ); dir.close() } fn status_cmd_output_without_rc() -> String { String::from( - r#"\ + r"\ direnv exec path /usr/bin/direnv DIRENV_CONFIG /home/test/.config/direnv bash_path /usr/bin/bash @@ -236,7 +242,7 @@ warn_timeout 5s whitelist.prefix [] whitelist.exact map[] No .envrc or .env loaded -No .envrc or .env found"#, +No .envrc or .env found", ) } fn status_cmd_output_with_rc(dir: impl AsRef, loaded: bool, allowed: bool) -> String { diff --git a/src/modules/dotnet.rs b/src/modules/dotnet.rs index e3c59008..4539b4d5 100644 --- a/src/modules/dotnet.rs +++ b/src/modules/dotnet.rs @@ -599,13 +599,13 @@ mod tests { } fn make_csproj_with_tfm(tfm_element: &str, tfm: &str) -> String { - let json_text = r#" + let json_text = r" TFM_VALUE - "#; + "; json_text .replace("TFM_ELEMENT", tfm_element) .replace("TFM_VALUE", tfm) diff --git a/src/modules/fossil_metrics.rs b/src/modules/fossil_metrics.rs index 5ec97b6c..45ceb2b4 100644 --- a/src/modules/fossil_metrics.rs +++ b/src/modules/fossil_metrics.rs @@ -287,10 +287,10 @@ mod tests { "{}{}", expect_added .map(|added| format!("{} ", expect_added_style.paint(format!("+{added}")))) - .unwrap_or(String::from("")), + .unwrap_or_default(), expect_deleted .map(|deleted| format!("{} ", expect_deleted_style.paint(format!("-{deleted}")))) - .unwrap_or(String::from("")), + .unwrap_or_default(), )); assert_eq!(expected, actual); } diff --git a/src/modules/kubernetes.rs b/src/modules/kubernetes.rs index c56514ba..042f4773 100644 --- a/src/modules/kubernetes.rs +++ b/src/modules/kubernetes.rs @@ -21,7 +21,7 @@ fn get_current_kube_context_name(filename: path::PathBuf) -> Option { let contents = utils::read_file(filename).ok()?; let yaml_docs = YamlLoader::load_from_str(&contents).ok()?; - let conf = yaml_docs.get(0)?; + let conf = yaml_docs.first()?; conf["current-context"] .as_str() .filter(|s| !s.is_empty()) @@ -35,7 +35,7 @@ fn get_kube_ctx_components( let contents = utils::read_file(filename).ok()?; let yaml_docs = YamlLoader::load_from_str(&contents).ok()?; - let conf = yaml_docs.get(0)?; + let conf = yaml_docs.first()?; let contexts = conf["contexts"].as_vec()?; // Find the context with the name we're looking for @@ -118,16 +118,13 @@ pub fn module<'a>(context: &'a Context) -> Option> { .any(|v| !v.is_empty()); let is_kube_project = have_scan_config.then(|| { - context - .try_begin_scan() - .map(|scanner| { - scanner - .set_files(&config.detect_files) - .set_folders(&config.detect_folders) - .set_extensions(&config.detect_extensions) - .is_match() - }) - .unwrap_or(false) + context.try_begin_scan().map_or(false, |scanner| { + scanner + .set_files(&config.detect_files) + .set_folders(&config.detect_folders) + .set_extensions(&config.detect_extensions) + .is_match() + }) }); if !is_kube_project.unwrap_or(true) { diff --git a/src/modules/nix_shell.rs b/src/modules/nix_shell.rs index d8666ee8..4d5cc9a1 100644 --- a/src/modules/nix_shell.rs +++ b/src/modules/nix_shell.rs @@ -23,7 +23,7 @@ impl NixShellType { }; if use_heuristic { - Self::in_new_nix_shell(context).map(|_| Unknown) + Self::in_new_nix_shell(context).map(|()| Unknown) } else { None } diff --git a/src/modules/openstack.rs b/src/modules/openstack.rs index 35c488ba..d5e59f63 100644 --- a/src/modules/openstack.rs +++ b/src/modules/openstack.rs @@ -27,7 +27,7 @@ fn get_osp_project_from_config(context: &Context, osp_cloud: &str) -> Option Some(("v1.40.0", "x86_64-unknown-linux-gnu")), diff --git a/src/modules/shlvl.rs b/src/modules/shlvl.rs index 48d22ec8..03e32728 100644 --- a/src/modules/shlvl.rs +++ b/src/modules/shlvl.rs @@ -242,7 +242,7 @@ mod tests { disabled = false threshold = threshold }) - .env(SHLVL_ENV_VAR, format!("{}", shlvl)) + .env(SHLVL_ENV_VAR, format!("{shlvl}")) .collect() } diff --git a/src/print.rs b/src/print.rs index 4fcba218..78c3dd6c 100644 --- a/src/print.rs +++ b/src/print.rs @@ -391,7 +391,7 @@ pub fn format_duration(duration: &Duration) -> String { /// Return the modules from $all that are not already in the list fn all_modules_uniq(module_list: &BTreeSet) -> Vec { let mut prompt_order: Vec = Vec::new(); - for module in PROMPT_ORDER.iter() { + for module in PROMPT_ORDER { if !module_list.contains(*module) { prompt_order.push(String::from(*module)) } @@ -452,7 +452,7 @@ fn load_formatter_and_modules<'a>(context: &'a Context) -> (StringFormatter<'a>, let modules = [&lf, &rf] .into_iter() .flatten() - .flat_map(|f| f.get_variables()) + .flat_map(VariableHolder::get_variables) .collect(); let main_formatter = match context.target { diff --git a/src/utils.rs b/src/utils.rs index 0459f5f7..7eaeba3f 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -71,7 +71,7 @@ pub fn write_file, S: AsRef>(file_name: P, text: S) -> Resul }; match file.write_all(text.as_bytes()) { - Ok(_) => { + Ok(()) => { log::trace!("File {file_name:?} written successfully"); } Err(err) => { From adc1b2503ea63f4ec147554428be98f8037ee8e0 Mon Sep 17 00:00:00 2001 From: Andre Wiggins <459878+andrewiggins@users.noreply.github.com> Date: Sat, 30 Dec 2023 08:32:11 -0800 Subject: [PATCH 056/651] docs(install): Add FAQ entry for installing Starship without sudo (#5648) Add FAQ entry for installing Starship without sudo Per [the comment](https://github.com/starship/starship/issues/5190#issuecomment-1553411366) in #5190, I've added an FAQ entry that includes an example script to install Starship without requiring `sudo`. --- docs/faq/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/faq/README.md b/docs/faq/README.md index 98ceb0ba..977c7ae6 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -144,3 +144,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. From a944dcfa146bb811439bc7b75a49e2b5f0aac922 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:29:54 +0000 Subject: [PATCH 057/651] build(deps): update rust crate shadow-rs to 0.26.0 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3391e755..1b4892e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2735,9 +2735,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615d846f7174a0850dca101bca72f6913e3376a64c5fda2b965d7fc3d1ff60cb" +checksum = "878cb1e3162d98ee1016b832efbb683ad6302b462a2894c54f488dc0bd96f11c" dependencies = [ "const_format", "is_debug", diff --git a/Cargo.toml b/Cargo.toml index c7833b5b..65e28985 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -72,7 +72,7 @@ semver = "1.0.20" serde = { version = "1.0.193", features = ["derive"] } serde_json = "1.0.108" sha1 = "0.10.6" -shadow-rs = { version = "0.25.0", default-features = false } +shadow-rs = { version = "0.26.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.27.1", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.25.0", default-features = false } +shadow-rs = { version = "0.26.0", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From a3b6e8f92c4453f208c74ab7b275eb83e4c74fa6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:48:27 +0000 Subject: [PATCH 058/651] build(deps): update rust crate clap to 4.4.12 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 65e28985..7a3ca64a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.11", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.12", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.5" dirs-next = "2.0.0" dunce = "1.0.4" From cdcfc367b572a141d9bb5bf1f4147819276e3107 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sun, 31 Dec 2023 15:53:51 +0100 Subject: [PATCH 059/651] build(deps): update rust crate gix to 0.57.0 (#5664) * build(deps): update rust crate gix to 0.57.0 * chore(context): explicitly avoid erroring on no git-ceiling-dir-match See: https://github.com/Byron/gitoxide/pull/1191 Co-Authored-By: Sebastian Thiel --------- Co-authored-by: David Knaack --- Cargo.lock | 165 +++++++++++++++++++++++++++---------------------- Cargo.toml | 4 +- src/context.rs | 28 +++++---- 3 files changed, 110 insertions(+), 87 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1b4892e7..08d6b903 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1036,9 +1036,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.56.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0dcdc9c60d66535897fa40a7ea2a635e72f99456b1d9ae86b7e170e80618cb" +checksum = "6dd025382892c7b500a9ce1582cd803f9c2ebfe44aff52e9c7f86feee7ced75e" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1078,9 +1078,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.28.1" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417" +checksum = "da27b5ab4ab5c75ff891dccd48409f8cc53c28a79480f1efdd33184b2dc1d958" dependencies = [ "bstr", "btoi", @@ -1092,27 +1092,27 @@ dependencies = [ [[package]] name = "gix-bitmap" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d49e1a13a30d3f88be4bceae184dd13a2d3fb9ffa7515f7ed7ae771b857f4916" +checksum = "78b6cd0f246180034ddafac9b00a112f19178135b21eb031b3f79355891f7325" dependencies = [ "thiserror", ] [[package]] name = "gix-chunk" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d411ecd9b558b0c20b3252b7e409eec48eabc41d18324954fe526bac6e2db55f" +checksum = "003ec6deacf68076a0c157271a127e0bb2c031c1a41f7168cbe5d248d9b85c78" dependencies = [ "thiserror", ] [[package]] name = "gix-commitgraph" -version = "0.22.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36" +checksum = "8a39c675fd737cb43a2120eddf1aa652c19d76b28d79783a198ac1b398ed9ce6" dependencies = [ "bstr", "gix-chunk", @@ -1124,9 +1124,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.32.1" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0341471d55d8676e98b88e121d7065dfa4c9c5acea4b6d6ecdd2846e85cce0c3" +checksum = "367304855b369cadcac4ee5fb5a3a20da9378dd7905106141070b79f85241079" dependencies = [ "bstr", "gix-config-value", @@ -1145,9 +1145,9 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6419db582ea84dfb58c7e7b0af7fd62c808aa14954af2936a33f89b0f4ed018e" +checksum = "52e0be46f4cf1f8f9e88d0e3eb7b29718aff23889563249f379119bd1ab6910e" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1158,9 +1158,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468dfbe411f335f01525a1352271727f8e7772075a93fa747260f502086b30be" +checksum = "fb7f3dfb72bebe3449b5e642be64e3c6ccbe9821c8b8f19f487cf5bfbbf4067e" dependencies = [ "bstr", "itoa", @@ -1170,9 +1170,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.38.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8119a985887cfe68f4bdf92e51bd64bc758a73882d82fcfc03ebcb164441c85d" +checksum = "fd6a0454f8c42d686f17e7f084057c717c082b7dbb8209729e4e8f26749eb93a" dependencies = [ "bstr", "gix-hash", @@ -1182,9 +1182,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.27.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fad89416ebe0b3b7df78464124e2a02417b6cd3743d48ad93df86f4d2929c07" +checksum = "b8d7b2896edc3d899d28a646ccc6df729827a6600e546570b2783466404a42d6" dependencies = [ "bstr", "dunce", @@ -1197,9 +1197,9 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.36.1" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2" +checksum = "77a80f0fe688d654c2a741751578b11131071026d1934d03c1820d6d767525ce" dependencies = [ "crc32fast", "crossbeam-channel", @@ -1219,18 +1219,18 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107" +checksum = "7555c23a005537434bbfcb8939694e18cad42602961d0de617f8477cc2adecdd" dependencies = [ "gix-features", ] [[package]] name = "gix-glob" -version = "0.14.1" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19" +checksum = "ae6232f18b262770e343dcdd461c0011c9b9ae27f0c805e115012aa2b902c1b8" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1240,9 +1240,9 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.13.3" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0" +checksum = "b0ed89cdc1dce26685c80271c4287077901de3c3dd90234d5fa47c22b2268653" dependencies = [ "faster-hex", "thiserror", @@ -1250,9 +1250,9 @@ dependencies = [ [[package]] name = "gix-hashtable" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca" +checksum = "ebe47d8c0887f82355e2e9e16b6cecaa4d5e5346a7a474ca78ff94de1db35a5b" dependencies = [ "gix-hash", "hashbrown 0.14.3", @@ -1261,9 +1261,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.27.1" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f308f5cd2992e96a274b0d1931e9a0e44fdcba87695ead3f6df30d8a697e9c" +checksum = "bd97a226ea6a7669109b84fa045bada556ec925e25145cb458adb4958b023ad0" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1286,9 +1286,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "11.0.1" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37" +checksum = "f40a439397f1e230b54cf85d52af87e5ea44cc1e7748379785d3f6d03d802b00" dependencies = [ "gix-tempfile", "gix-utils", @@ -1297,9 +1297,9 @@ dependencies = [ [[package]] name = "gix-macros" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae" +checksum = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb" dependencies = [ "proc-macro2", "quote", @@ -1308,9 +1308,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.39.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "febf79c5825720c1c63fe974c7bbe695d0cb54aabad73f45671c60ce0e501e33" +checksum = "0c89402e8faa41b49fde348665a8f38589e461036475af43b6b70615a6a313a2" dependencies = [ "bstr", "btoi", @@ -1327,9 +1327,9 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.55.0" +version = "0.56.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fae5f971540c99c6ecc8d4368ecc9d18a9dc8b9391025c68c4399747dc93bac" +checksum = "46ae6da873de41c6c2b73570e82c571b69df5154dcd8f46dfafc6687767c33b1" dependencies = [ "arc-swap", "gix-date", @@ -1346,9 +1346,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.45.0" +version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569491c92446fddf373456ff360aff9a9effd627b40a70f2d7914dcd75a3205" +checksum = "782b4d42790a14072d5c400deda9851f5765f50fe72bca6dece0da1cd6f05a9a" dependencies = [ "clru", "gix-chunk", @@ -1367,9 +1367,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86d6fac2fabe07b67b7835f46d07571f68b11aa1aaecae94fe722ea4ef305e1" +checksum = "b8dd0998ab245f33d40ca2267e58d542fe54185ebd1dc41923346cf28d179fb6" dependencies = [ "bstr", "gix-trace", @@ -1380,9 +1380,9 @@ dependencies = [ [[package]] name = "gix-quote" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f84845efa535468bc79c5a87b9d29219f1da0313c8ecf0365a5daa7e72786f2" +checksum = "9f7dc10303d73a960d10fb82f81188b036ac3e6b11b5795b20b1a60b51d1321f" dependencies = [ "bstr", "btoi", @@ -1391,9 +1391,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.39.1" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2069adc212cf7f3317ef55f6444abd06c50f28479dbbac5a86acf3b05cbbfe" +checksum = "64d9bd1984638d8f3511a2fcbe84fcedb8a5b5d64df677353620572383f42649" dependencies = [ "gix-actor", "gix-date", @@ -1412,9 +1412,9 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d9d3b82e1ee78fc0dc1c37ea5ea76c2dbc73f407db155f0dfcea285e583bee" +checksum = "be219df5092c1735abb2a53eccdf775e945eea6986ee1b6e7a5896dccc0be704" dependencies = [ "bstr", "gix-hash", @@ -1426,9 +1426,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.24.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5dd51710ce5434bc315ea30394fab483c5377276494edd79222b321a5a9544" +checksum = "aa78e1df3633bc937d4db15f8dca2abdb1300ca971c0fabcf9fa97e38cf4cd9f" dependencies = [ "bstr", "gix-date", @@ -1442,9 +1442,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d4ed2493ca94a475fdf147138e1ef8bab3b6ebb56abf3d9bda1c05372ec1dd" +checksum = "702de5fe5c2bbdde80219f3a8b9723eb927466e7ecd187cfd1b45d986408e45f" dependencies = [ "gix-commitgraph", "gix-date", @@ -1457,21 +1457,21 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a36ea2c5907d64a9b4b5d3cc9f430e6c30f0509646b5e38eb275ca57c5bf29e2" +checksum = "78f6dce0c6683e2219e8169aac4b1c29e89540a8262fef7056b31d80d969408c" dependencies = [ "bitflags 2.4.1", "gix-path", "libc", - "windows 0.48.0", + "windows 0.52.0", ] [[package]] name = "gix-tempfile" -version = "11.0.1" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23" +checksum = "a8ef376d718b1f5f119b458e21b00fbf576bc9d4e26f8f383d29f5ffe3ba3eaa" dependencies = [ "gix-fs", "libc", @@ -1482,15 +1482,15 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b686a35799b53a9825575ca3f06481d0a053a409c4d97ffcf5ddd67a8760b497" +checksum = "e8e1127ede0475b58f4fe9c0aaa0d9bb0bad2af90bbd93ccd307c8632b863d89" [[package]] name = "gix-traverse" -version = "0.35.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2112088122a0206592c84fbd42020db63b2ccaed66a0293779f2e5fbf80474" +checksum = "cb64213e52e1b726cb04581690c1e98b5910f983b977d5e9f2eb09f1a7fea6d2" dependencies = [ "gix-commitgraph", "gix-date", @@ -1504,9 +1504,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.25.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005" +checksum = "8f0f17cceb7552a231d1fec690bc2740c346554e3be6f5d2c41dfa809594dc44" dependencies = [ "bstr", "gix-features", @@ -1518,18 +1518,18 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f82c41937f00e15a1f6cb0b55307f0ca1f77f4407ff2bf440be35aa688c6a3e" +checksum = "de6225e2de30b6e9bca2d9f1cc4731640fcef0fb3cabddceee366e7e85d3e94f" dependencies = [ "fastrand 2.0.1", ] [[package]] name = "gix-validate" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b7d8e4274be69f284bbc7e6bb2ccf7065dbcdeba22d8c549f2451ae426883f" +checksum = "ac7cc36f496bd5d96cdca0f9289bb684480725d40db60f48194aa7723b883854" dependencies = [ "bstr", "thiserror", @@ -1597,7 +1597,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.51.1", ] [[package]] @@ -2382,9 +2382,9 @@ dependencies = [ [[package]] name = "prodash" -version = "26.2.2" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf" +checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" [[package]] name = "quick-xml" @@ -3487,10 +3487,20 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core", + "windows-core 0.51.1", "windows-targets 0.48.5", ] +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core 0.52.0", + "windows-targets 0.52.0", +] + [[package]] name = "windows-core" version = "0.51.1" @@ -3500,6 +3510,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 7a3ca64a..9ea7589d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,8 +48,8 @@ clap_complete = "4.4.5" dirs-next = "2.0.0" dunce = "1.0.4" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.56.0", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.36.1", optional = true } +gix = { version = "0.57.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix-features = { version = "0.37.0", optional = true } indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix diff --git a/src/context.rs b/src/context.rs index 1bd9c560..4a651908 100644 --- a/src/context.rs +++ b/src/context.rs @@ -319,7 +319,10 @@ impl<'a> Context<'a> { let shared_repo = match ThreadSafeRepository::discover_with_environment_overrides_opts( &self.current_dir, - Default::default(), + gix::discover::upwards::Options { + match_ceiling_dir_or_error: false, + ..Default::default() + }, git_open_opts_map, ) { Ok(repo) => repo, @@ -336,7 +339,10 @@ impl<'a> Context<'a> { ); let branch = get_current_branch(&repository); - let remote = get_remote_repository_info(&repository, branch.as_deref()); + let remote = get_remote_repository_info( + &repository, + branch.as_ref().map(|name| name.as_ref()), + ); let path = repository.path().to_path_buf(); let fs_monitor_value_is_true = repository @@ -346,7 +352,7 @@ impl<'a> Context<'a> { Ok(Repo { repo: shared_repo, - branch, + branch: branch.map(|b| b.shorten().to_string()), workdir: repository.work_dir().map(PathBuf::from), path, state: repository.state(), @@ -624,7 +630,8 @@ pub struct Repo { pub repo: ThreadSafeRepository, /// If `current_dir` is a git repository or is contained within one, - /// this is the current branch name of that repo. + /// this is the short name of the current branch name of that repo, + /// i.e. `main`. pub branch: Option, /// If `current_dir` is a git repository or is contained within one, @@ -788,24 +795,21 @@ impl<'a> ScanAncestors<'a> { } } -fn get_current_branch(repository: &Repository) -> Option { - let name = repository.head_name().ok()??; - let shorthand = name.shorten(); - - Some(shorthand.to_string()) +fn get_current_branch(repository: &Repository) -> Option { + repository.head_name().ok()? } fn get_remote_repository_info( repository: &Repository, - branch_name: Option<&str>, + branch_name: Option<&gix::refs::FullNameRef>, ) -> Option { let branch_name = branch_name?; let branch = repository - .branch_remote_ref(branch_name) + .branch_remote_ref_name(branch_name, gix::remote::Direction::Fetch) .and_then(std::result::Result::ok) .map(|r| r.shorten().to_string()); let name = repository - .branch_remote_name(branch_name) + .branch_remote_name(branch_name.shorten(), gix::remote::Direction::Fetch) .map(|n| n.as_bstr().to_string()); Some(Remote { branch, name }) From d9198a8a155fbd373dacba3929a0e70b2e109e24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 31 Dec 2023 14:54:28 +0000 Subject: [PATCH 060/651] build(deps): update gitoxide crates --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9ea7589d..c9dee25d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,8 +48,8 @@ clap_complete = "4.4.5" dirs-next = "2.0.0" dunce = "1.0.4" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.57.0", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.37.0", optional = true } +gix = { version = "0.57.1", default-features = false, features = ["max-performance-safe", "revision"] } +gix-features = { version = "0.37.1", optional = true } indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix From 72a104979a26889fc91d315d272f7c7a39a94b08 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 01:43:03 +0000 Subject: [PATCH 061/651] build(deps): update rust crate serde_json to 1.0.109 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08d6b903..1a01e707 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2653,9 +2653,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index c9dee25d..182e6441 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ regex = { version = "1.10.2", default-features = false, features = ["perf", "std rust-ini = "0.20.0" semver = "1.0.20" serde = { version = "1.0.193", features = ["derive"] } -serde_json = "1.0.108" +serde_json = "1.0.109" sha1 = "0.10.6" shadow-rs = { version = "0.26.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 551b82b66f786ec9b8317115f02456cc83a72f9d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:50:16 +0000 Subject: [PATCH 062/651] build(deps): update rust crate serde to 1.0.194 --- Cargo.lock | 46 +++++++++++++++++++++++----------------------- Cargo.toml | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a01e707..33ada3c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -231,7 +231,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -266,7 +266,7 @@ checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -448,7 +448,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -787,7 +787,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -1303,7 +1303,7 @@ checksum = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -1922,7 +1922,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -2199,7 +2199,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -2361,9 +2361,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" dependencies = [ "unicode-ident", ] @@ -2406,9 +2406,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -2622,22 +2622,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -2670,7 +2670,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -2919,9 +2919,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.43" +version = "2.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" dependencies = [ "proc-macro2", "quote", @@ -3052,7 +3052,7 @@ checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -3184,7 +3184,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", ] [[package]] @@ -3389,7 +3389,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", "wasm-bindgen-shared", ] @@ -3411,7 +3411,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.46", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/Cargo.toml b/Cargo.toml index 182e6441..8762c11d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.20" -serde = { version = "1.0.193", features = ["derive"] } +serde = { version = "1.0.194", features = ["derive"] } serde_json = "1.0.109" sha1 = "0.10.6" shadow-rs = { version = "0.26.0", default-features = false } From a83e10776ba37bd1ab439e5e4d0125a06e947728 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Tue, 2 Jan 2024 15:45:06 +0100 Subject: [PATCH 063/651] revert: refactor(modules): use whoami crate to get username (#5669) Revert "refactor(modules): use whoami crate to get username" --- Cargo.lock | 18 +++++++++++------- Cargo.toml | 2 +- src/modules/hostname.rs | 4 ++-- src/modules/username.rs | 16 +++++++++++----- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 33ada3c1..803bcfa7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1023,6 +1023,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "gethostname" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" +dependencies = [ + "libc", + "windows-targets 0.48.5", +] + [[package]] name = "getrandom" version = "0.2.11" @@ -2830,6 +2840,7 @@ dependencies = [ "deelevate", "dirs-next", "dunce", + "gethostname", "gix", "gix-features", "guess_host_triple", @@ -2871,7 +2882,6 @@ dependencies = [ "urlencoding", "versions", "which", - "whoami", "windows 0.48.0", "winres", "yaml-rust", @@ -3435,12 +3445,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "whoami" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" - [[package]] name = "winapi" version = "0.3.9" diff --git a/Cargo.toml b/Cargo.toml index 8762c11d..077659e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,6 +47,7 @@ clap = { version = "4.4.12", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.5" dirs-next = "2.0.0" dunce = "1.0.4" +gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.57.1", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.37.1", optional = true } @@ -93,7 +94,6 @@ process_control = { version = "4.0.3", features = ["crossbeam-channel"] } guess_host_triple = "0.1.3" home = "0.5.9" shell-words = "1.1.0" -whoami = { version = "1.4.1", default-features = false } [dependencies.schemars] version = "0.8.16" diff --git a/src/modules/hostname.rs b/src/modules/hostname.rs index d5e967b6..8eec9b5f 100644 --- a/src/modules/hostname.rs +++ b/src/modules/hostname.rs @@ -23,7 +23,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; } - let os_hostname: OsString = whoami::hostname_os(); + let os_hostname: OsString = gethostname::gethostname(); let host = match os_hostname.into_string() { Ok(host) => host, @@ -87,7 +87,7 @@ mod tests { macro_rules! get_hostname { () => { - if let Ok(hostname) = whoami::hostname_os().into_string() { + if let Ok(hostname) = gethostname::gethostname().into_string() { hostname } else { println!( diff --git a/src/modules/username.rs b/src/modules/username.rs index 537e552f..af3fa6e5 100644 --- a/src/modules/username.rs +++ b/src/modules/username.rs @@ -2,15 +2,21 @@ use super::{Context, Module, ModuleConfig}; use crate::configs::username::UsernameConfig; use crate::formatter::StringFormatter; -#[cfg(test)] + +#[cfg(not(target_os = "windows"))] +const USERNAME_ENV_VAR: &str = "USER"; + +#[cfg(target_os = "windows")] const USERNAME_ENV_VAR: &str = "USERNAME"; /// Creates a module with the current user's username +/// +/// Will display the username if any of the following criteria are met: +/// - The current user is root (UID = 0) [1] +/// - The current user isn't the same as the one that is logged in (`$LOGNAME` != `$USER`) [2] +/// - The user is currently connected as an SSH session (`$SSH_CONNECTION`) [3] pub fn module<'a>(context: &'a Context) -> Option> { - #[cfg(test)] let mut username = context.get_env(USERNAME_ENV_VAR)?; - #[cfg(not(test))] - let mut username = whoami::username(); let mut module = context.new_module("username"); let config: UsernameConfig = UsernameConfig::try_load(module.config); @@ -145,8 +151,8 @@ mod tests { let actual = ModuleRenderer::new("username") .env("SSH_CONNECTION", "192.168.223.17 36673 192.168.223.229 22") .collect(); - let expected = None; + assert_eq!(expected, actual); } From 1082afce0a27c5459d25998ea137067eb44dadab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 19:29:33 +0100 Subject: [PATCH 064/651] chore(master): release 1.17.1 (#5670) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9de27f44..62053bcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.17.1](https://github.com/starship/starship/compare/v1.17.0...v1.17.1) (2024-01-02) + + +### Bug Fixes + +* v1.17.0 post-release fix-ups ([#5660](https://github.com/starship/starship/issues/5660)) ([89dc192](https://github.com/starship/starship/commit/89dc19214bb671fe50a8f1be79a4594e7998ddea)) + + +### Reverts + +* refactor(modules): use whoami crate to get username ([#5669](https://github.com/starship/starship/issues/5669)) ([a83e107](https://github.com/starship/starship/commit/a83e10776ba37bd1ab439e5e4d0125a06e947728)) + ## [1.17.0](https://github.com/starship/starship/compare/v1.16.0...v1.17.0) (2023-12-28) diff --git a/Cargo.lock b/Cargo.lock index 803bcfa7..3017789f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2832,7 +2832,7 @@ dependencies = [ [[package]] name = "starship" -version = "1.17.0" +version = "1.17.1" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index 077659e4..fb9e0a39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starship" -version = "1.17.0" +version = "1.17.1" authors = ["Starship Contributors"] build = "build.rs" categories = ["command-line-utilities"] From 1ddfed9ef5e59fe6e5f75fe5b10d52b20a7d9a20 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 18:30:15 +0000 Subject: [PATCH 065/651] build(deps): update rust crate semver to 1.0.21 --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3017789f..c27d2cd4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2617,9 +2617,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "semver-parser" @@ -2864,7 +2864,7 @@ dependencies = [ "regex", "rust-ini", "schemars", - "semver 1.0.20", + "semver 1.0.21", "serde", "serde_json", "sha1", diff --git a/Cargo.toml b/Cargo.toml index fb9e0a39..15998174 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ rand = "0.8.5" rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" -semver = "1.0.20" +semver = "1.0.21" serde = { version = "1.0.194", features = ["derive"] } serde_json = "1.0.109" sha1 = "0.10.6" From 0f49a74c6a7053590082d88c04a91d9062795d4f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 14:45:47 +0000 Subject: [PATCH 066/651] build(deps): update rust crate serde_json to 1.0.110 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c27d2cd4..b1503daa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2663,9 +2663,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.109" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9" +checksum = "6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 15998174..4fbe6258 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.2", default-features = false, features = ["perf", "std rust-ini = "0.20.0" semver = "1.0.21" serde = { version = "1.0.194", features = ["derive"] } -serde_json = "1.0.109" +serde_json = "1.0.110" sha1 = "0.10.6" shadow-rs = { version = "0.26.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 3a5c162c4f422b39a8868bbb4c4e327cb0cf5c88 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 22:34:33 +0000 Subject: [PATCH 067/651] build(deps): update rust crate clap_complete to 4.4.6 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b1503daa..01d3cc4e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.5" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a51919c5608a32e34ea1d6be321ad070065e17613e168c5b6977024290f2630b" +checksum = "97aeaa95557bd02f23fbb662f981670c3d20c5a26e69f7354b28f57092437fcd" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 4fbe6258..72b14470 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.12", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.5" +clap_complete = "4.4.6" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From de4e1fde2f4cd6a1ef7279b3dfe48123ffefbd6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 04:34:35 +0000 Subject: [PATCH 068/651] build(deps): update crate-ci/typos action to v1.17.0 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 4ccac96a..a42f1860 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 - - uses: crate-ci/typos@v1.16.26 + - uses: crate-ci/typos@v1.17.0 From eef94106b0a7e4abf0be68e268ac941784a72427 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Thu, 4 Jan 2024 17:06:28 +0700 Subject: [PATCH 069/651] docs(i18n): new Crowdin updates (#5661) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Spanish) * New translations readme.md (Spanish) --- docs/ar-SA/faq/README.md | 8 ++++++++ docs/bn-BD/faq/README.md | 8 ++++++++ docs/ckb-IR/faq/README.md | 8 ++++++++ docs/de-DE/faq/README.md | 8 ++++++++ docs/es-ES/faq/README.md | 8 ++++++++ docs/fr-FR/advanced-config/README.md | 2 +- docs/fr-FR/faq/README.md | 10 +++++++++- docs/fr-FR/guide/README.md | 2 +- docs/id-ID/faq/README.md | 8 ++++++++ docs/it-IT/faq/README.md | 8 ++++++++ docs/ja-JP/faq/README.md | 8 ++++++++ docs/ko-KR/faq/README.md | 8 ++++++++ docs/nl-NL/faq/README.md | 8 ++++++++ docs/no-NO/faq/README.md | 8 ++++++++ docs/pl-PL/faq/README.md | 8 ++++++++ docs/pt-BR/faq/README.md | 8 ++++++++ docs/pt-PT/faq/README.md | 8 ++++++++ docs/ru-RU/faq/README.md | 8 ++++++++ docs/tr-TR/faq/README.md | 8 ++++++++ docs/uk-UA/faq/README.md | 8 ++++++++ docs/vi-VN/faq/README.md | 8 ++++++++ docs/zh-CN/faq/README.md | 8 ++++++++ docs/zh-TW/faq/README.md | 8 ++++++++ 23 files changed, 171 insertions(+), 3 deletions(-) diff --git a/docs/ar-SA/faq/README.md b/docs/ar-SA/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/ar-SA/faq/README.md +++ b/docs/ar-SA/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/bn-BD/faq/README.md b/docs/bn-BD/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/bn-BD/faq/README.md +++ b/docs/bn-BD/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/ckb-IR/faq/README.md b/docs/ckb-IR/faq/README.md index b86e8a5f..34bac692 100644 --- a/docs/ckb-IR/faq/README.md +++ b/docs/ckb-IR/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/de-DE/faq/README.md b/docs/de-DE/faq/README.md index ce856da8..49cb1693 100644 --- a/docs/de-DE/faq/README.md +++ b/docs/de-DE/faq/README.md @@ -120,3 +120,11 @@ Wenn Starship mit Hilfe des Installationsscripts installiert wurde, entfernt der # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/es-ES/faq/README.md b/docs/es-ES/faq/README.md index e536bfb0..01c3d036 100644 --- a/docs/es-ES/faq/README.md +++ b/docs/es-ES/faq/README.md @@ -120,3 +120,11 @@ Si Starship fue instalado usando el guión de instalación, el siguiente comando # Localiza y elimina el binario de starship sh -c 'rm "$(comando -v 'starship')"' ``` + +## ¿Cómo instalo Starship sin `sudo`? + +El script de instalación del shell (`https://starship.rs/install.sh`) solo intenta usar `sudo` si el directorio de instalación no es escribible para el usuario actual. El directorio de instalación por defecto es el valor de la variable de entorno `$BIN_DIR` o `/usr/local/bin` si `$BIN_DIR` no está establecido. Si en su lugar establece el directorio de instalación a uno que tenga permisos de escritura para su usuario, deberías ser capaz de instalar starship sin `sudo`. Por ejemplo, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` usa la opción de línea de comando `b` del script de instalación para establecer el directorio de instalación a `~/.local/bin`. + +Para una instalación no interactiva de Starship, no te olvides de añadir la opción `y` para omitir la confirmación. Consulte la fuente del script de instalación para ver una lista de todas las opciones de instalación soportadas. + +Al usar el gestor de paquetes, vea la documentación de su gestor de paquetes acerca de instalación con o sin `sudo`. diff --git a/docs/fr-FR/advanced-config/README.md b/docs/fr-FR/advanced-config/README.md index bb090d08..28cfcfd9 100644 --- a/docs/fr-FR/advanced-config/README.md +++ b/docs/fr-FR/advanced-config/README.md @@ -205,7 +205,7 @@ Certains shells peuvent gérer une invite de commande à droite, sur la même li Note: l’invite à droite est une seule ligne, sur la même ligne que l’entrée. Pour aligner à droite les modules au-dessus de la ligne d’entrée d’une invite multiligne, voir le [module `fill`](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` est actuellement supporté pour les shells suivants : elvish, fish, zsh, xonsh, cmd, nushell. ### Exemple diff --git a/docs/fr-FR/faq/README.md b/docs/fr-FR/faq/README.md index 65066f8f..c7b201be 100644 --- a/docs/fr-FR/faq/README.md +++ b/docs/fr-FR/faq/README.md @@ -80,7 +80,7 @@ env STARSHIP_LOG=trace starship timings Cela affichera le journal de suivi et un détail de tous les modules qui ont soit pris plus d’1ms pour s’exécuter, soit affiché quelque chose. -Finally if you find a bug you can use the `bug-report` command to create a GitHub issue. +Enfin, si vous trouvez un bug, vous pouvez utiliser la commande `bug-report` pour créer un ticket sur GitHub. ```sh starship bug-report @@ -120,3 +120,11 @@ Si Starship a été installé en utilisant le script d'installation, la commande # Trouver et supprimer le binaire starship sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/fr-FR/guide/README.md b/docs/fr-FR/guide/README.md index 781d03bd..81010479 100644 --- a/docs/fr-FR/guide/README.md +++ b/docs/fr-FR/guide/README.md @@ -35,7 +35,7 @@ Stand With Ukraine

diff --git a/docs/id-ID/faq/README.md b/docs/id-ID/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/id-ID/faq/README.md +++ b/docs/id-ID/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/it-IT/faq/README.md b/docs/it-IT/faq/README.md index 24c8cb70..00dc751e 100644 --- a/docs/it-IT/faq/README.md +++ b/docs/it-IT/faq/README.md @@ -120,3 +120,11 @@ Se Starship è stato installato utilizzando lo script di installazione, il segue # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/ja-JP/faq/README.md b/docs/ja-JP/faq/README.md index 6a8bb91e..7b3b84b1 100644 --- a/docs/ja-JP/faq/README.md +++ b/docs/ja-JP/faq/README.md @@ -120,3 +120,11 @@ Starship をインストールスクリプトを使用してインストール # starshipのバイナリを見つけて削除 sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/ko-KR/faq/README.md b/docs/ko-KR/faq/README.md index 1cd79ec3..0e7a3de8 100644 --- a/docs/ko-KR/faq/README.md +++ b/docs/ko-KR/faq/README.md @@ -120,3 +120,11 @@ Starship을 설치 스크립트로 설치하였다면 바이너리 파일 제거 # starship 바이너리 파일을 찾고 제거합니다. sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/nl-NL/faq/README.md b/docs/nl-NL/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/nl-NL/faq/README.md +++ b/docs/nl-NL/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/no-NO/faq/README.md b/docs/no-NO/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/no-NO/faq/README.md +++ b/docs/no-NO/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/pl-PL/faq/README.md b/docs/pl-PL/faq/README.md index 4df19d6b..2757bc7b 100644 --- a/docs/pl-PL/faq/README.md +++ b/docs/pl-PL/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/pt-BR/faq/README.md b/docs/pt-BR/faq/README.md index 27259e57..c445f797 100644 --- a/docs/pt-BR/faq/README.md +++ b/docs/pt-BR/faq/README.md @@ -120,3 +120,11 @@ Se o Starship foi instalado usando o script de instalação, o comando abaixo ir # Localiza e exclui o binário do starship sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/pt-PT/faq/README.md b/docs/pt-PT/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/pt-PT/faq/README.md +++ b/docs/pt-PT/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/ru-RU/faq/README.md b/docs/ru-RU/faq/README.md index f3f1992d..6fe2f96c 100644 --- a/docs/ru-RU/faq/README.md +++ b/docs/ru-RU/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/tr-TR/faq/README.md b/docs/tr-TR/faq/README.md index 41bb2d39..1f848440 100644 --- a/docs/tr-TR/faq/README.md +++ b/docs/tr-TR/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/uk-UA/faq/README.md b/docs/uk-UA/faq/README.md index 2d1f9fd2..afdb13d6 100644 --- a/docs/uk-UA/faq/README.md +++ b/docs/uk-UA/faq/README.md @@ -120,3 +120,11 @@ Starship так само легко видалити, як і встановит # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/vi-VN/faq/README.md b/docs/vi-VN/faq/README.md index 9af777e5..04983a2d 100644 --- a/docs/vi-VN/faq/README.md +++ b/docs/vi-VN/faq/README.md @@ -120,3 +120,11 @@ If Starship was installed using the install script, the following command will d # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/zh-CN/faq/README.md b/docs/zh-CN/faq/README.md index ece4a97e..9d21b222 100644 --- a/docs/zh-CN/faq/README.md +++ b/docs/zh-CN/faq/README.md @@ -120,3 +120,11 @@ Starship 的卸载过程与安装过程一样简单。 # 找到并且删除 Starship 二进制文件 sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. diff --git a/docs/zh-TW/faq/README.md b/docs/zh-TW/faq/README.md index 372f6d5b..f19960c7 100644 --- a/docs/zh-TW/faq/README.md +++ b/docs/zh-TW/faq/README.md @@ -120,3 +120,11 @@ echo -e "\xee\x82\xa0" # Locate and delete the starship binary sh -c 'rm "$(command -v 'starship')"' ``` + +## How do I install Starship without `sudo`? + +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. + +For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. + +When using a package manager, see the documentation for your package manager about installing with or without `sudo`. From 856c87eeff75f232fc70cf9be4e60be034882378 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 10:07:17 +0000 Subject: [PATCH 070/651] build(deps): update rust crate serde_json to 1.0.111 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01d3cc4e..75bc5c60 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2663,9 +2663,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.110" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fbd975230bada99c8bb618e0c365c2eefa219158d5c6c29610fd09ff1833257" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 72b14470..4e9792dc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.2", default-features = false, features = ["perf", "std rust-ini = "0.20.0" semver = "1.0.21" serde = { version = "1.0.194", features = ["derive"] } -serde_json = "1.0.110" +serde_json = "1.0.111" sha1 = "0.10.6" shadow-rs = { version = "0.26.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 78a799c2028bbc6655f945131128b14011a590c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 17:55:13 +0000 Subject: [PATCH 071/651] build(deps): update pest crates to 2.7.6 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 75bc5c60..60396aec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2180,9 +2180,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" dependencies = [ "memchr", "thiserror", @@ -2191,9 +2191,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" +checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" dependencies = [ "pest", "pest_generator", @@ -2201,9 +2201,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" +checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" dependencies = [ "pest", "pest_meta", @@ -2214,9 +2214,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" +checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" dependencies = [ "once_cell", "pest", diff --git a/Cargo.toml b/Cargo.toml index 4e9792dc..9f92f714 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ open = "5.0.1" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" -pest = "2.7.5" -pest_derive = "2.7.5" +pest = "2.7.6" +pest_derive = "2.7.6" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.8.0" From 60dad11aeb386bba7dbab59b2a6f8b7d09dd4ce4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:12:40 +0000 Subject: [PATCH 072/651] build(deps): update rust crate clap to 4.4.13 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 60396aec..a826945d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.12" +version = "4.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" +checksum = "52bdc885e4cacc7f7c9eedc1ef6da641603180c783c41a15c264944deeaab642" dependencies = [ "clap_builder", "clap_derive", diff --git a/Cargo.toml b/Cargo.toml index 9f92f714..7b42fc95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.12", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.13", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.6" dirs-next = "2.0.0" dunce = "1.0.4" From 0d73154002a3f8a7ee55a2578cf8caf4d7325782 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jan 2024 04:42:56 +0000 Subject: [PATCH 073/651] build(deps): update rust crate serde to 1.0.195 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a826945d..79911e83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2632,18 +2632,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.194" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.194" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 7b42fc95..7e4576a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.8.0" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.21" -serde = { version = "1.0.194", features = ["derive"] } +serde = { version = "1.0.195", features = ["derive"] } serde_json = "1.0.111" sha1 = "0.10.6" shadow-rs = { version = "0.26.0", default-features = false } From cec111affdaf0a52f72c398f8307cf7e19c7dd8d Mon Sep 17 00:00:00 2001 From: Camron Flanders Date: Sat, 6 Jan 2024 04:46:25 -0600 Subject: [PATCH 074/651] fix(direnv): update to work with direnv v2.33 (#5657) * update AllowStatus to work with direnv 2.33 direnv now returns int enum instead of boolean, https://github.com/direnv/direnv/pull/1158 * update schema * maybe fixed the schema now * Whoops, I inverted the flags somehow * have coffee, fix mistaken understanding * undo changes to tranlations * Update docs/config/README.md * Update src/modules/direnv.rs Co-authored-by: David Knaack * update test output --------- Co-authored-by: David Knaack --- .github/config-schema.json | 5 ++ docs/config/README.md | 1 + src/configs/direnv.rs | 2 + src/modules/direnv.rs | 134 +++++++++++++++++++++++++++++++++++-- 4 files changed, 135 insertions(+), 7 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 914693c3..e2bade18 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -366,6 +366,7 @@ "disabled": true, "format": "[$symbol$loaded/$allowed]($style) ", "loaded_msg": "loaded", + "not_allowed_msg": "not allowed", "style": "bold orange", "symbol": "direnv ", "unloaded_msg": "not loaded" @@ -2775,6 +2776,10 @@ "default": "allowed", "type": "string" }, + "not_allowed_msg": { + "default": "not allowed", + "type": "string" + }, "denied_msg": { "default": "denied", "type": "string" diff --git a/docs/config/README.md b/docs/config/README.md index 046ad01d..786ab81c 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -1225,6 +1225,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/src/configs/direnv.rs b/src/configs/direnv.rs index 5a58d795..5ca1e185 100755 --- a/src/configs/direnv.rs +++ b/src/configs/direnv.rs @@ -16,6 +16,7 @@ pub struct DirenvConfig<'a> { pub detect_files: Vec<&'a str>, pub detect_folders: Vec<&'a str>, pub allowed_msg: &'a str, + pub not_allowed_msg: &'a str, pub denied_msg: &'a str, pub loaded_msg: &'a str, pub unloaded_msg: &'a str, @@ -32,6 +33,7 @@ impl<'a> Default for DirenvConfig<'a> { detect_files: vec![".envrc"], detect_folders: vec![], allowed_msg: "allowed", + not_allowed_msg: "not allowed", denied_msg: "denied", loaded_msg: "loaded", unloaded_msg: "not loaded", diff --git a/src/modules/direnv.rs b/src/modules/direnv.rs index 6378cb96..4816a7eb 100644 --- a/src/modules/direnv.rs +++ b/src/modules/direnv.rs @@ -45,6 +45,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { "rc_path" => Some(Ok(state.rc_path.to_string_lossy())), "allowed" => Some(Ok(match state.allowed { AllowStatus::Allowed => Cow::from(config.allowed_msg), + AllowStatus::NotAllowed => Cow::from(config.not_allowed_msg), AllowStatus::Denied => Cow::from(config.denied_msg), })), "loaded" => state @@ -109,6 +110,7 @@ impl FromStr for DirenvState { #[derive(Debug)] enum AllowStatus { Allowed, + NotAllowed, Denied, } @@ -117,8 +119,9 @@ impl FromStr for AllowStatus { fn from_str(s: &str) -> Result { match s { - "true" => Ok(Self::Allowed), - "false" => Ok(Self::Denied), + "0" | "true" => Ok(Self::Allowed), + "1" => Ok(Self::NotAllowed), + "2" | "false" => Ok(Self::Denied), _ => Err(Cow::from("invalid allow status")), } } @@ -148,6 +151,34 @@ mod tests { assert_eq!(None, renderer.collect()); } #[test] + fn folder_with_unloaded_rc_file_pre_2_33() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), false, "0", true), + stderr: String::default(), + }), + ); + + assert_eq!( + Some(format!("direnv not loaded/allowed ")), + renderer.collect() + ); + + dir.close() + } + #[test] fn folder_with_unloaded_rc_file() -> io::Result<()> { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); @@ -163,7 +194,7 @@ mod tests { .cmd( "direnv status", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), false, true), + stdout: status_cmd_output_with_rc(dir.path(), false, "0", false), stderr: String::default(), }), ); @@ -176,6 +207,31 @@ mod tests { dir.close() } #[test] + fn folder_with_loaded_rc_file_pre_2_33() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), true, "0", true), + stderr: String::default(), + }), + ); + + assert_eq!(Some(format!("direnv loaded/allowed ")), renderer.collect()); + + dir.close() + } + #[test] fn folder_with_loaded_rc_file() -> io::Result<()> { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); @@ -191,7 +247,7 @@ mod tests { .cmd( "direnv status", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), true, true), + stdout: status_cmd_output_with_rc(dir.path(), true, "0", false), stderr: String::default(), }), ); @@ -204,6 +260,59 @@ mod tests { dir.close() } #[test] + fn folder_with_loaded_and_denied_rc_file_pre_2_33() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), true, "2", true), + stderr: String::default(), + }), + ); + + assert_eq!(Some(format!("direnv loaded/denied ")), renderer.collect()); + + dir.close() + } + #[test] + fn folder_with_loaded_and_not_allowed_rc_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + let rc_path = dir.path().join(".envrc"); + + std::fs::File::create(&rc_path)?.sync_all()?; + + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .path(dir.path()) + .cmd( + "direnv status", + Some(CommandOutput { + stdout: status_cmd_output_with_rc(dir.path(), true, "1", false), + stderr: String::default(), + }), + ); + + assert_eq!( + Some(format!("direnv loaded/not allowed ")), + renderer.collect() + ); + + dir.close() + } + #[test] fn folder_with_loaded_and_denied_rc_file() -> io::Result<()> { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); @@ -219,7 +328,7 @@ mod tests { .cmd( "direnv status", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), true, false), + stdout: status_cmd_output_with_rc(dir.path(), true, "2", false), stderr: String::default(), }), ); @@ -245,17 +354,28 @@ No .envrc or .env loaded No .envrc or .env found", ) } - fn status_cmd_output_with_rc(dir: impl AsRef, loaded: bool, allowed: bool) -> String { + fn status_cmd_output_with_rc( + dir: impl AsRef, + loaded: bool, + allowed: &str, + use_legacy_boolean_flags: bool, + ) -> String { let rc_path = dir.as_ref().join(".envrc"); let rc_path = rc_path.to_string_lossy(); + let allowed_value = match (use_legacy_boolean_flags, allowed) { + (true, "0") => "true", + (true, ..) => "false", + (false, val) => val, + }; + let loaded = if loaded { format!( r#"\ Loaded RC path {rc_path} Loaded watch: ".envrc" - 2023-04-30T09:51:04-04:00 Loaded watch: "../.local/share/direnv/allow/abcd" - 2023-04-30T09:52:58-04:00 - Loaded RC allowed false + Loaded RC allowed {allowed_value} Loaded RC allowPath "# ) From 819045ee2821d8920e3ac4a9b495433766fa1ba4 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 6 Jan 2024 13:15:06 +0100 Subject: [PATCH 075/651] ci(release): use PAT for Merge Crowdin PR job (#5683) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1219eb9e..c55b9805 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -354,7 +354,7 @@ jobs: - name: Merge | Merge Crowdin PR run: gh pr merge i18n_master --squash --repo=starship/starship env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_PAT }} publish_docs: name: Trigger docs deployment From 2bb57cf0cd6d53194d26f4be96dff5fa14942622 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 6 Jan 2024 21:19:02 +0100 Subject: [PATCH 076/651] fix(zsh): improve starship binary path escaping (#5574) --- src/init/starship.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/init/starship.zsh b/src/init/starship.zsh index 33fc3cee..2ca01052 100644 --- a/src/init/starship.zsh +++ b/src/init/starship.zsh @@ -87,6 +87,6 @@ VIRTUAL_ENV_DISABLE_PROMPT=1 setopt promptsubst -PROMPT='$(::STARSHIP:: prompt --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' -RPROMPT='$(::STARSHIP:: prompt --right --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' +PROMPT='$('::STARSHIP::' prompt --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' +RPROMPT='$('::STARSHIP::' prompt --right --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' PROMPT2="$(::STARSHIP:: prompt --continuation)" From ef7b77355719bb3fc7c3bd3056b7c3d1fb4b8a25 Mon Sep 17 00:00:00 2001 From: Xiaohan Ni <91544758+phanen@users.noreply.github.com> Date: Sun, 7 Jan 2024 05:49:27 +0800 Subject: [PATCH 077/651] test(aws): fix flaky tests `expiration_date_set` `expiration_date_set_from_file` (#5685) * fix(aws): fix flaky test `expiration_date_set` * fix(aws): fix flaky test `expiration_date_set_from_file` --- src/modules/aws.rs | 81 +++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/src/modules/aws.rs b/src/modules/aws.rs index 0a5a0176..fa455862 100644 --- a/src/modules/aws.rs +++ b/src/modules/aws.rs @@ -703,14 +703,21 @@ credential_process = /opt/bin/awscreds-retriever now_plus_half_hour.to_rfc3339_opts(SecondsFormat::Secs, true), ) .collect(); - let expected = Some(format!( - "on {}", - Color::Yellow - .bold() - .paint("☁️ astronauts (ap-northeast-2) [30m] ") - )); - assert_eq!(expected, actual); + let possible_values = [ + "30m2s", "30m1s", "30m", "29m59s", "29m58s", "29m57s", "29m56s", "29m55s", + ]; + let possible_values = possible_values.map(|duration| { + let segment_colored = format!("☁️ astronauts (ap-northeast-2) [{duration}] "); + Some(format!( + "on {}", + Color::Yellow.bold().paint(segment_colored) + )) + }); + assert!( + possible_values.contains(&actual), + "time is not in range: {actual:?}" + ); }); } @@ -743,46 +750,32 @@ aws_secret_access_key=dummy ) .unwrap(); - let actual = ModuleRenderer::new("aws") - .env("AWS_PROFILE", "astronauts") - .env("AWS_REGION", "ap-northeast-2") - .env( - "AWS_SHARED_CREDENTIALS_FILE", - credentials_path.to_string_lossy().as_ref(), - ) - .collect(); + let credentials_env_vars = ["AWS_SHARED_CREDENTIALS_FILE", "AWS_CREDENTIALS_FILE"]; + credentials_env_vars.iter().for_each(|env_var| { + let actual = ModuleRenderer::new("aws") + .env("AWS_PROFILE", "astronauts") + .env("AWS_REGION", "ap-northeast-2") + .env(env_var, credentials_path.to_string_lossy().as_ref()) + .collect(); - let actual_variant = ModuleRenderer::new("aws") - .env("AWS_PROFILE", "astronauts") - .env("AWS_REGION", "ap-northeast-2") - .env( - "AWS_CREDENTIALS_FILE", - credentials_path.to_string_lossy().as_ref(), - ) - .collect(); + // In principle, "30m" should be correct. However, bad luck in scheduling + // on shared runners may delay it. + let possible_values = [ + "30m2s", "30m1s", "30m", "29m59s", "29m58s", "29m57s", "29m56s", "29m55s", + ]; + let possible_values = possible_values.map(|duration| { + let segment_colored = format!("☁️ astronauts (ap-northeast-2) [{duration}] "); + Some(format!( + "on {}", + Color::Yellow.bold().paint(segment_colored) + )) + }); - assert_eq!( - actual, actual_variant, - "both AWS_SHARED_CREDENTIALS_FILE and AWS_CREDENTIALS_FILE should work" - ); - - // In principle, "30m" should be correct. However, bad luck in scheduling - // on shared runners may delay it. - let possible_values = [ - "30m2s", "30m1s", "30m", "29m59s", "29m58s", "29m57s", "29m56s", "29m55s", - ]; - let possible_values = possible_values.map(|duration| { - let segment_colored = format!("☁️ astronauts (ap-northeast-2) [{duration}] "); - Some(format!( - "on {}", - Color::Yellow.bold().paint(segment_colored) - )) + assert!( + possible_values.contains(&actual), + "time is not in range: {actual:?}" + ); }); - - assert!( - possible_values.contains(&actual), - "time is not in range: {actual:?}" - ); }); dir.close() From 92d37f7ef61fd551ec1fc1556a6de4ac805fc9ba Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 7 Jan 2024 03:05:37 +0100 Subject: [PATCH 078/651] ci(deps): move `actions/checkout` back to version instead of digest pin (#5474) --- .github/workflows/format-workflow.yml | 4 ++-- .github/workflows/publish-docs.yml | 2 +- .github/workflows/release.yml | 12 ++++++------ .github/workflows/security-audit.yml | 2 +- .github/workflows/spell-check.yml | 2 +- .github/workflows/workflow.yml | 14 +++++++------- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/format-workflow.yml b/.github/workflows/format-workflow.yml index c11d3ab0..87e79ee8 100644 --- a/.github/workflows/format-workflow.yml +++ b/.github/workflows/format-workflow.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Docs | Format uses: dprint/check@v2.2 @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Install | Taplo run: cargo install --debug --locked --version 0.8.1 taplo-cli - name: Presets | Validate with schema diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 6391fefe..0aabea0c 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Node uses: actions/setup-node@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c55b9805..666bd6d6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -88,7 +88,7 @@ jobs: RUSTFLAGS: ${{ matrix.rustflags || '' }} steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@master @@ -178,7 +178,7 @@ jobs: STARSHIP_VERSION: ${{ needs.release_please.outputs.tag_name }} steps: - name: Checkout repository - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 with: # Required to include the recently merged Crowdin PR ref: master @@ -289,7 +289,7 @@ jobs: if: ${{ needs.release_please.outputs.release_created == 'true' }} steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -334,7 +334,7 @@ jobs: if: ${{ needs.release_please.outputs.release_created == 'true' }} steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Artifacts uses: actions/download-artifact@v3 - run: pwsh ./install/windows/choco/update.ps1 @@ -350,7 +350,7 @@ jobs: continue-on-error: true steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Merge | Merge Crowdin PR run: gh pr merge i18n_master --squash --repo=starship/starship env: @@ -362,7 +362,7 @@ jobs: needs: merge_crowdin_pr steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Trigger workflow dispatch run: gh workflow run publish-docs.yml env: diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 33350a7f..a2e78eef 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Test | Security Audit uses: EmbarkStudios/cargo-deny-action@v1.5.5 with: diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index a42f1860..f3306933 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -6,5 +6,5 @@ jobs: name: Spell Check with Typos runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@v4 - uses: crate-ci/typos@v1.17.0 diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 7df7d444..72ac94f9 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -43,7 +43,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -80,7 +80,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -98,7 +98,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -120,7 +120,7 @@ jobs: pull-requests: write steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 - name: Setup | Rust uses: dtolnay/rust-toolchain@stable @@ -156,7 +156,7 @@ jobs: RUSTFLAGS: ${{ matrix.rustflags || '' }} steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@v4 # Install all the required dependencies for testing - name: Setup | Rust From 60e5aa1ce5afc1e12854db87522a80a550953ec3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 7 Jan 2024 15:13:15 +0000 Subject: [PATCH 079/651] build(deps): update rust crate strsim to 0.10.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 79911e83..bd7ac8da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2912,9 +2912,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "ccbca6f34534eb78dbee83f6b2c9442fea7113f43d9e80ea320f0972ae5dc08d" [[package]] name = "syn" diff --git a/Cargo.toml b/Cargo.toml index 7e4576a6..6344afc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,7 +77,7 @@ shadow-rs = { version = "0.26.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } -strsim = "0.10.0" +strsim = "0.10.1" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.8", features = ["preserve_order"] } From 275a474387f7188e3d0dd9b51b4a719e42012439 Mon Sep 17 00:00:00 2001 From: Maksim Bondarenkov <119937608+ognevnydemon@users.noreply.github.com> Date: Mon, 8 Jan 2024 23:53:59 +0700 Subject: [PATCH 080/651] chore: bump libz-sys crates to 1.1.13 (#5690) bump libz-sys crate to 1.1.13 so `aarch64-pc-windows-gnullvm` will become buildable again --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd7ac8da..866c97d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1770,9 +1770,9 @@ dependencies = [ [[package]] name = "libz-ng-sys" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63" +checksum = "601c27491de2c76b43c9f52d639b2240bfb9b02112009d3b754bfa90d891492d" dependencies = [ "cmake", "libc", @@ -1780,9 +1780,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "5f526fdd09d99e19742883e43de41e1aa9e36db0c7ab7f935165d611c5cccc66" dependencies = [ "cc", "pkg-config", From fd32e35c3d144f361f432f9ca05bb2d9340fb949 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 16:55:05 +0000 Subject: [PATCH 081/651] build(deps): update rust crate clap to 4.4.14 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 866c97d5..1510cae7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.13" +version = "4.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52bdc885e4cacc7f7c9eedc1ef6da641603180c783c41a15c264944deeaab642" +checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" dependencies = [ "clap_builder", "clap_derive", @@ -418,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.12" +version = "4.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" +checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 6344afc4..40ded229 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.13", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.14", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.6" dirs-next = "2.0.0" dunce = "1.0.4" From a29b82586c26e0635a28550618ff9ca995118554 Mon Sep 17 00:00:00 2001 From: Maksim Bondarenkov <119937608+ognevny@users.noreply.github.com> Date: Thu, 11 Jan 2024 20:06:29 +0300 Subject: [PATCH 082/651] chore: bump libz-sys crates to 1.1.14 (#5694) actually at first update needed fix wasn't applied now the things should work properly --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1510cae7..0f533f27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1770,9 +1770,9 @@ dependencies = [ [[package]] name = "libz-ng-sys" -version = "1.1.13" +version = "1.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601c27491de2c76b43c9f52d639b2240bfb9b02112009d3b754bfa90d891492d" +checksum = "81157dde2fd4ad2b45ea3a4bb47b8193b52a6346b678840d91d80d3c2cd166c5" dependencies = [ "cmake", "libc", @@ -1780,9 +1780,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.13" +version = "1.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f526fdd09d99e19742883e43de41e1aa9e36db0c7ab7f935165d611c5cccc66" +checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050" dependencies = [ "cc", "pkg-config", From 431aaa58754f48180342a38d041e5681e4dddb91 Mon Sep 17 00:00:00 2001 From: CAESIUS_TIM <60285058+CAESIUS-TIM@users.noreply.github.com> Date: Fri, 12 Jan 2024 01:10:48 +0800 Subject: [PATCH 083/651] docs(battery): add space after symbol in example (#5695) docs(battery): add space after symbol in example (#5695) --- docs/config/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config/README.md b/docs/config/README.md index 786ab81c..42e79ca2 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -569,7 +569,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` From 6f2dd5de37b8c8f3424195836589b0a7ef12dd88 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:11:28 +0000 Subject: [PATCH 084/651] build(deps): update rust crate clap to 4.4.15 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f533f27..292aa1a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.14" +version = "4.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" +checksum = "c12ed66a79a555082f595f7eb980d08669de95009dd4b3d61168c573ebe38fc9" dependencies = [ "clap_builder", "clap_derive", @@ -418,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.14" +version = "4.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" +checksum = "0f4645eab3431e5a8403a96bea02506a8b35d28cd0f0330977dd5d22f9c84f43" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 40ded229..00badf7f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.14", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.15", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.6" dirs-next = "2.0.0" dunce = "1.0.4" From 7a3433b325eab948d3d7451c8106c67c054136fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 01:10:36 +0000 Subject: [PATCH 085/651] build(deps): update rust crate versions to 6.1.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 292aa1a7..258fdd2a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3339,9 +3339,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "versions" -version = "6.0.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c271c81503258e3850c9d0f0d279d4ce9458d3388ef9eaa081b10d542182c3" +checksum = "f37ff4899935ba747849dd9eeb27c0bdd0da0210236704b7e4681a6c7bd6f9c6" dependencies = [ "itertools 0.12.0", "nom 7.1.3", diff --git a/Cargo.toml b/Cargo.toml index 00badf7f..509ba861 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -85,7 +85,7 @@ toml_edit = "0.21.0" unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" -versions = "6.0.0" +versions = "6.1.0" which = "5.0.0" yaml-rust = "0.4.5" From 2eece4ae258ef25a9eefa8933c00e8dd2a5f61eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 03:33:56 +0000 Subject: [PATCH 086/651] build(deps): update rust crate clap to 4.4.16 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 258fdd2a..9be983ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" dependencies = [ "anstyle", "anstyle-parse", @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.15" +version = "4.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c12ed66a79a555082f595f7eb980d08669de95009dd4b3d61168c573ebe38fc9" +checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" dependencies = [ "clap_builder", "clap_derive", @@ -418,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.15" +version = "4.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4645eab3431e5a8403a96bea02506a8b35d28cd0f0330977dd5d22f9c84f43" +checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 509ba861..0338a09e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.15", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.16", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.6" dirs-next = "2.0.0" dunce = "1.0.4" From 674c9b34151d760ef8c834332d2de1f74a0a3647 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 01:21:53 +0000 Subject: [PATCH 087/651] build(deps): update crate-ci/typos action to v1.17.1 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index f3306933..5bb5b1ef 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.17.0 + - uses: crate-ci/typos@v1.17.1 From c6e2c10b01721293162c87c37798e67477436146 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 02:23:06 +0000 Subject: [PATCH 088/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.88.9 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index 60535dff..bb4f592d 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.7/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.9/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.5.4/plugin.wasm" From 8ec386ea09978d6b1ea06823b21b699d61a8fd7c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 15:03:06 +0000 Subject: [PATCH 089/651] build(deps): update rust crate gix-features to 0.37.2 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9be983ab..bd9fce13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1207,9 +1207,9 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.37.1" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a80f0fe688d654c2a741751578b11131071026d1934d03c1820d6d767525ce" +checksum = "d50270e8dcc665f30ba0735b17984b9535bdf1e646c76e638e007846164d57af" dependencies = [ "crc32fast", "crossbeam-channel", @@ -1492,9 +1492,9 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e1127ede0475b58f4fe9c0aaa0d9bb0bad2af90bbd93ccd307c8632b863d89" +checksum = "02b202d766a7fefc596e2cc6a89cda8ad8ad733aed82da635ac120691112a9b1" [[package]] name = "gix-traverse" diff --git a/Cargo.toml b/Cargo.toml index 0338a09e..2868996c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,7 @@ dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.57.1", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.37.1", optional = true } +gix-features = { version = "0.37.2", optional = true } indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix From fc6ccc0f8300562feb3ccb6813ca77062b207279 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 22:20:03 +0000 Subject: [PATCH 090/651] build(deps): update clap crates --- Cargo.lock | 12 ++++++------ Cargo.toml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd9fce13..62dec922 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.16" +version = "4.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" +checksum = "80932e03c33999b9235edb8655bc9df3204adc9887c2f95b50cb1deb9fd54253" dependencies = [ "clap_builder", "clap_derive", @@ -418,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.16" +version = "4.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" +checksum = "d6c0db58c659eef1c73e444d298c27322a1b52f6927d2ad470c0c0f96fa7b8fa" dependencies = [ "anstream", "anstyle", @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.6" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97aeaa95557bd02f23fbb662f981670c3d20c5a26e69f7354b28f57092437fcd" +checksum = "dfb0d4825b75ff281318c393e8e1b80c4da9fb75a6b1d98547d389d6fe1f48d2" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 2868996c..8eae0584 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,8 +43,8 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.16", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.6" +clap = { version = "4.4.17", features = ["derive", "cargo", "unicode"] } +clap_complete = "4.4.7" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From 024a1eb90426fede2ca4c467f1f764bf0cfba91d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 10:20:38 +0000 Subject: [PATCH 091/651] build(deps): update rust crate shadow-rs to 0.26.1 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62dec922..872719c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2745,9 +2745,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878cb1e3162d98ee1016b832efbb683ad6302b462a2894c54f488dc0bd96f11c" +checksum = "3e5c5c8276991763b44ede03efaf966eaa0412fafbf299e6380704678ca3b997" dependencies = [ "const_format", "is_debug", diff --git a/Cargo.toml b/Cargo.toml index 8eae0584..0fa899a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ semver = "1.0.21" serde = { version = "1.0.195", features = ["derive"] } serde_json = "1.0.111" sha1 = "0.10.6" -shadow-rs = { version = "0.26.0", default-features = false } +shadow-rs = { version = "0.26.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.27.1", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.26.0", default-features = false } +shadow-rs = { version = "0.26.1", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From c5b39e9610e5696eba2d65784f6ffad73489fdee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 21:59:09 +0000 Subject: [PATCH 092/651] build(deps): update rust crate clap to 4.4.18 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 872719c3..c01d8622 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.17" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80932e03c33999b9235edb8655bc9df3204adc9887c2f95b50cb1deb9fd54253" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -418,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.17" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c0db58c659eef1c73e444d298c27322a1b52f6927d2ad470c0c0f96fa7b8fa" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 0fa899a0..e1237d31 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.17", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.7" dirs-next = "2.0.0" dunce = "1.0.4" From 8dbdbc79b2f1d50987258179c3abc059efff93db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:17:11 +0000 Subject: [PATCH 093/651] build(deps): update rust crate rayon to 1.8.1 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c01d8622..4042d4f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2455,9 +2455,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" dependencies = [ "either", "rayon-core", @@ -2465,9 +2465,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", diff --git a/Cargo.toml b/Cargo.toml index e1237d31..9fc9b22a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,7 +66,7 @@ pest = "2.7.6" pest_derive = "2.7.6" quick-xml = "0.31.0" rand = "0.8.5" -rayon = "1.8.0" +rayon = "1.8.1" regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.21" From 679fcc9c930781b7247097caae346ce5137b7455 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:17:17 +0000 Subject: [PATCH 094/651] build(deps): update xalvarez/prevent-file-change-action action to v1.6.0 --- .github/workflows/format-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/format-workflow.yml b/.github/workflows/format-workflow.yml index 87e79ee8..01de6611 100644 --- a/.github/workflows/format-workflow.yml +++ b/.github/workflows/format-workflow.yml @@ -35,7 +35,7 @@ jobs: if: ${{ github.event_name == 'pull_request' }} steps: - name: Prevent File Change - uses: xalvarez/prevent-file-change-action@v1.5.1 + uses: xalvarez/prevent-file-change-action@v1.6.0 if: ${{ github.event.pull_request.head.ref != 'i18n_master' }} with: githubToken: ${{ secrets.GITHUB_TOKEN }} From f60326de42aa97bc3123ae8f574e41ad7c6ea7fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jan 2024 09:27:16 +0100 Subject: [PATCH 095/651] build(deps): update rust crate which to v6 (#5711) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 30 +++++++++++++++--------------- Cargo.toml | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4042d4f9..df45d146 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -180,7 +180,7 @@ dependencies = [ "futures-lite 2.1.0", "parking", "polling 3.3.1", - "rustix 0.38.28", + "rustix 0.38.30", "slab", "tracing", "windows-sys 0.52.0", @@ -219,7 +219,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.28", + "rustix 0.38.30", "windows-sys 0.48.0", ] @@ -246,7 +246,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.28", + "rustix 0.38.30", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -1289,7 +1289,7 @@ dependencies = [ "itoa", "libc", "memmap2", - "rustix 0.38.28", + "rustix 0.38.30", "smallvec", "thiserror", ] @@ -1753,9 +1753,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.151" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "libredox" @@ -2315,7 +2315,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.28", + "rustix 0.38.30", "tracing", "windows-sys 0.52.0", ] @@ -2548,9 +2548,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" dependencies = [ "bitflags 2.4.1", "errno 0.3.8", @@ -2971,7 +2971,7 @@ dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall", - "rustix 0.38.28", + "rustix 0.38.30", "windows-sys 0.52.0", ] @@ -2981,7 +2981,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.28", + "rustix 0.38.30", "windows-sys 0.48.0", ] @@ -3434,15 +3434,15 @@ checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "which" -version = "5.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" +checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c" dependencies = [ "either", "home", "once_cell", - "rustix 0.38.28", - "windows-sys 0.48.0", + "rustix 0.38.30", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9fc9b22a..9006cb5b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -86,7 +86,7 @@ unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" versions = "6.1.0" -which = "5.0.0" +which = "6.0.0" yaml-rust = "0.4.5" process_control = { version = "4.0.3", features = ["crossbeam-channel"] } From 17d5622cc8d945337a71b0fa22ace0e7a3b5afbd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 20:08:40 +0000 Subject: [PATCH 096/651] build(deps): update rust crate clap_complete to 4.4.8 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index df45d146..8aedb4c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb0d4825b75ff281318c393e8e1b80c4da9fb75a6b1d98547d389d6fe1f48d2" +checksum = "eaf7dcb7c21d8ca1a2482ee0f1d341f437c9a7af6ca6da359dc5e1b164e98215" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 9006cb5b..e6226f88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.7" +clap_complete = "4.4.8" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From 608391bab37483d72eb50a114eb232075c8b10ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 22:40:35 +0000 Subject: [PATCH 097/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.6 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index a2e78eef..e48a7403 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.5 + uses: EmbarkStudios/cargo-deny-action@v1.5.6 with: command: check ${{ matrix.checks }} From 2f1fb8bf85938056a5809be0597ca0e4be4181a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 10:12:15 +0000 Subject: [PATCH 098/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.7 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index e48a7403..ed70d3d4 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.6 + uses: EmbarkStudios/cargo-deny-action@v1.5.7 with: command: check ${{ matrix.checks }} From 8d0d68c3f062c06872a65980b249d031cbd9bfad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 16:52:50 +0000 Subject: [PATCH 099/651] build(deps): update crate-ci/typos action to v1.17.2 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 5bb5b1ef..46e49255 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.17.1 + - uses: crate-ci/typos@v1.17.2 From 5ead13d6aa6303c85c562f1b940048cc539667cd Mon Sep 17 00:00:00 2001 From: Rashil Gandhi <46838874+rashil2000@users.noreply.github.com> Date: Sun, 21 Jan 2024 18:25:52 +0530 Subject: [PATCH 100/651] feat(bash): Support right prompt and transience (#4902) * Support right prompt in bash * Docs for transience in bash * Apply suggestions from review * Simplify conditional * Use ble.sh hooks, if available * Properly quote args * Use BLE_PIPESTATUS * Update starship.bash * Update src/init/starship.bash Co-authored-by: Koichi Murase --------- Co-authored-by: Koichi Murase --- docs/advanced-config/README.md | 39 +++++++++++++++++++++++++++++++++- src/init/starship.bash | 20 +++++++++++++---- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index 13f30c0c..b728a632 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -106,6 +106,41 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace +the previous-printed prompt with custom strings. This is useful in cases where all +the prompt information is not always needed. To enable this, put this in `~/.bashrc` +`bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. +When `prompt_ps1_final` is empty and this option has a non-empty value, +the prompt specified by `PS1` is erased on leaving the current command line. +If the value contains a field `trim`, only the last line of multiline `PS1` is +preserved and the other lines are erased. Otherwise, the command line will be +redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the +value and the current working directory is different from the final directory of +the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on +the left and on the right: + +- To customize what the left side of input gets replaced with, configure the + `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` + module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the + `prompt_rps1_final` Ble.sh option. For example, to display + the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands @@ -261,7 +296,9 @@ not explicitly used in either `format` or `right_format`. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/src/init/starship.bash b/src/init/starship.bash index b7f7cb0e..5a62be85 100644 --- a/src/init/starship.bash +++ b/src/init/starship.bash @@ -33,6 +33,9 @@ starship_preexec() { starship_precmd() { # Save the status, because commands in this pipeline will change $? STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${PIPESTATUS[@]}) + if [[ ${BLE_ATTACHED-} && ${#BLE_PIPESTATUS[@]} -gt 0 ]]; then + STARSHIP_PIPE_STATUS=("${BLE_PIPESTATUS[@]}") + fi if [[ "${#BP_PIPESTATUS[@]}" -gt "${#STARSHIP_PIPE_STATUS[@]}" ]]; then STARSHIP_PIPE_STATUS=(${BP_PIPESTATUS[@]}) fi @@ -64,21 +67,30 @@ starship_precmd() { eval "$_PRESERVED_PROMPT_COMMAND" + local -a ARGS=(--terminal-width="${COLUMNS}" --status="${STARSHIP_CMD_STATUS}" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --jobs="${NUM_JOBS}") # Prepare the timer data, if needed. if [[ $STARSHIP_START_TIME ]]; then STARSHIP_END_TIME=$(::STARSHIP:: time) STARSHIP_DURATION=$((STARSHIP_END_TIME - STARSHIP_START_TIME)) - PS1="$(::STARSHIP:: prompt --terminal-width="$COLUMNS" --status=$STARSHIP_CMD_STATUS --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --jobs="$NUM_JOBS" --cmd-duration=$STARSHIP_DURATION)" + ARGS+=( --cmd-duration="${STARSHIP_DURATION}") unset STARSHIP_START_TIME - else - PS1="$(::STARSHIP:: prompt --terminal-width="$COLUMNS" --status=$STARSHIP_CMD_STATUS --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --jobs="$NUM_JOBS")" + fi + PS1="$(::STARSHIP:: prompt "${ARGS[@]}")" + if [[ ${BLE_ATTACHED-} ]]; then + local nlns=${PS1//[!$'\n']} + bleopt prompt_rps1="$nlns$(::STARSHIP:: prompt --right "${ARGS[@]}")" fi STARSHIP_PREEXEC_READY=true # Signal that we can safely restart the timer } +# If the user appears to be using https://github.com/akinomyoga/ble.sh, +# then hook our functions into their framework. +if [[ ${BLE_VERSION-} && _ble_version -ge 400 ]]; then + blehook PREEXEC!='starship_preexec "$_"' + blehook PRECMD!='starship_precmd' # If the user appears to be using https://github.com/rcaloras/bash-preexec, # then hook our functions into their framework. -if [[ "${__bp_imported:-}" == "defined" || $preexec_functions || $precmd_functions ]]; then +elif [[ "${__bp_imported:-}" == "defined" || $preexec_functions || $precmd_functions ]]; then # bash-preexec needs a single function--wrap the args into a closure and pass starship_preexec_all(){ starship_preexec "$_"; } preexec_functions+=(starship_preexec_all) From 482c7b719fc304fcad5f3572c4551f8ff4179522 Mon Sep 17 00:00:00 2001 From: Andrew Pantuso Date: Sun, 21 Jan 2024 07:56:57 -0500 Subject: [PATCH 101/651] feat(direnv): use JSON status with direnv >= 2.33.0 (#5692) --- src/modules/direnv.rs | 149 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 135 insertions(+), 14 deletions(-) diff --git a/src/modules/direnv.rs b/src/modules/direnv.rs index 4816a7eb..5a5999ef 100644 --- a/src/modules/direnv.rs +++ b/src/modules/direnv.rs @@ -7,6 +7,8 @@ use super::{Context, Module, ModuleConfig}; use crate::configs::direnv::DirenvConfig; use crate::formatter::StringFormatter; +use serde::Deserialize; + /// Creates a module with the current direnv rc pub fn module<'a>(context: &'a Context) -> Option> { let mut module = context.new_module("direnv"); @@ -24,7 +26,8 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; } - let direnv_status = &context.exec_cmd("direnv", &["status"])?.stdout; + // the `--json` flag is silently ignored for direnv versions <2.33.0 + let direnv_status = &context.exec_cmd("direnv", &["status", "--json"])?.stdout; let state = match DirenvState::from_str(direnv_status) { Ok(s) => s, Err(e) => { @@ -81,6 +84,22 @@ impl FromStr for DirenvState { type Err = Cow<'static, str>; fn from_str(s: &str) -> Result { + match serde_json::from_str::(s) { + Ok(raw) => Ok(DirenvState { + rc_path: raw.state.found_rc.path, + allowed: raw.state.found_rc.allowed.try_into()?, + loaded: matches!( + raw.state.loaded_rc.allowed.try_into()?, + AllowStatus::Allowed + ), + }), + Err(_) => DirenvState::from_lines(s), + } + } +} + +impl DirenvState { + fn from_lines(s: &str) -> Result> { let mut rc_path = PathBuf::new(); let mut allowed = None; let mut loaded = true; @@ -127,13 +146,64 @@ impl FromStr for AllowStatus { } } +impl TryFrom for AllowStatus { + type Error = Cow<'static, str>; + + fn try_from(u: u8) -> Result { + match u { + 0 => Ok(Self::Allowed), + 1 => Ok(Self::NotAllowed), + 2 => Ok(Self::Denied), + _ => Err(Cow::from("unknown integer allow status")), + } + } +} + +#[derive(Debug, Deserialize)] +struct RawDirenvState { + pub state: State, +} + +#[derive(Debug, Deserialize)] +struct State { + #[serde(rename = "foundRC")] + pub found_rc: RCStatus, + #[serde(rename = "loadedRC")] + pub loaded_rc: RCStatus, +} + +#[derive(Debug, Deserialize)] +struct RCStatus { + pub allowed: u8, + pub path: PathBuf, +} + #[cfg(test)] mod tests { + use serde_json::json; + use crate::test::ModuleRenderer; use crate::utils::CommandOutput; use std::io; use std::path::Path; #[test] + fn folder_without_rc_files_pre_2_33() { + let renderer = ModuleRenderer::new("direnv") + .config(toml::toml! { + [direnv] + disabled = false + }) + .cmd( + "direnv status --json", + Some(CommandOutput { + stdout: status_cmd_output_without_rc(), + stderr: String::default(), + }), + ); + + assert_eq!(None, renderer.collect()); + } + #[test] fn folder_without_rc_files() { let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -141,9 +211,9 @@ mod tests { disabled = false }) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { - stdout: status_cmd_output_without_rc(), + stdout: status_cmd_output_without_rc_json(), stderr: String::default(), }), ); @@ -164,7 +234,7 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { stdout: status_cmd_output_with_rc(dir.path(), false, "0", true), stderr: String::default(), @@ -192,9 +262,9 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), false, "0", false), + stdout: status_cmd_output_with_rc_json(dir.path(), 1, 0), stderr: String::default(), }), ); @@ -220,7 +290,7 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { stdout: status_cmd_output_with_rc(dir.path(), true, "0", true), stderr: String::default(), @@ -245,9 +315,9 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), true, "0", false), + stdout: status_cmd_output_with_rc_json(dir.path(), 0, 0), stderr: String::default(), }), ); @@ -273,7 +343,7 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { stdout: status_cmd_output_with_rc(dir.path(), true, "2", true), stderr: String::default(), @@ -298,9 +368,9 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), true, "1", false), + stdout: status_cmd_output_with_rc_json(dir.path(), 0, 1), stderr: String::default(), }), ); @@ -326,9 +396,9 @@ mod tests { }) .path(dir.path()) .cmd( - "direnv status", + "direnv status --json", Some(CommandOutput { - stdout: status_cmd_output_with_rc(dir.path(), true, "2", false), + stdout: status_cmd_output_with_rc_json(dir.path(), 0, 2), stderr: String::default(), }), ); @@ -354,6 +424,19 @@ No .envrc or .env loaded No .envrc or .env found", ) } + fn status_cmd_output_without_rc_json() -> String { + json!({ + "config": { + "ConfigDir": config_dir(), + "SelfPath": self_path(), + }, + "state": { + "foundRC": null, + "loadedRC": null, + } + }) + .to_string() + } fn status_cmd_output_with_rc( dir: impl AsRef, loaded: bool, @@ -403,4 +486,42 @@ Found RC allowPath /home/test/.local/share/direnv/allow/abcd "# ) } + fn status_cmd_output_with_rc_json(dir: impl AsRef, loaded: u8, allowed: u8) -> String { + let rc_path = dir.as_ref().join(".envrc"); + let rc_path = rc_path.to_string_lossy(); + + json!({ + "config": { + "ConfigDir": config_dir(), + "SelfPath": self_path(), + }, + "state": { + "foundRC": { + "allowed": allowed, + "path": rc_path, + }, + "loadedRC": { + "allowed": loaded, + "path": rc_path, + } + } + }) + .to_string() + } + #[cfg(windows)] + fn config_dir() -> &'static str { + r"C:\\Users\\test\\AppData\\Local\\direnv" + } + #[cfg(not(windows))] + fn config_dir() -> &'static str { + "/home/test/.config/direnv" + } + #[cfg(windows)] + fn self_path() -> &'static str { + r"C:\\Program Files\\direnv\\direnv.exe" + } + #[cfg(not(windows))] + fn self_path() -> &'static str { + "/usr/bin/direnv" + } } From 6d006132f27d989f16b57b425c5016663cdbb656 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 11:26:16 +0000 Subject: [PATCH 102/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.9 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index ed70d3d4..be1b094b 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.7 + uses: EmbarkStudios/cargo-deny-action@v1.5.9 with: command: check ${{ matrix.checks }} From 97fc4a0db626a6bd7bb2fc313d13618bd47f06f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 15:36:30 +0000 Subject: [PATCH 103/651] build(deps): update rust crate regex to 1.10.3 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8aedb4c2..fcfe7164 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2495,9 +2495,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", @@ -2507,9 +2507,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index e6226f88..69e2e2bb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ pest_derive = "2.7.6" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.8.1" -regex = { version = "1.10.2", default-features = false, features = ["perf", "std", "unicode-perl"] } +regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.21" serde = { version = "1.0.195", features = ["derive"] } From 80a3ecbe186c376bc9bdb317b2bca71876cebb0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 19:14:48 +0000 Subject: [PATCH 104/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.10 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index be1b094b..98041ac0 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.9 + uses: EmbarkStudios/cargo-deny-action@v1.5.10 with: command: check ${{ matrix.checks }} From 633ca5f016387b0a20db835cf695334c0008ecec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 19:15:19 +0000 Subject: [PATCH 105/651] build(deps): update rust crate clap_complete to 4.4.9 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fcfe7164..d49b119c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.8" +version = "4.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf7dcb7c21d8ca1a2482ee0f1d341f437c9a7af6ca6da359dc5e1b164e98215" +checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 69e2e2bb..12e2156a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.8" +clap_complete = "4.4.9" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From 78564efbc8573f7b67186a0c5d3f19078961268f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 00:01:54 +0000 Subject: [PATCH 106/651] build(deps): update rust crate chrono to 0.4.32 --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d49b119c..f5bdc636 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -394,16 +394,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 12e2156a..576973d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.31", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.32", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.9" dirs-next = "2.0.0" From b0bbde8be1ab2026f03e499e23c0b32a7cba4e8e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 00:02:00 +0000 Subject: [PATCH 107/651] build(deps): update rust crate nu-ansi-term to 0.50.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f5bdc636..b9433eac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1993,9 +1993,9 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.49.0" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68" +checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14" dependencies = [ "windows-sys 0.48.0", ] diff --git a/Cargo.toml b/Cargo.toml index 576973d7..04c173c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,7 +56,7 @@ log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 notify-rust = { version = "4.10.0", optional = true } -nu-ansi-term = "0.49.0" +nu-ansi-term = "0.50.0" once_cell = "1.19.0" open = "5.0.1" # update os module config and tests when upgrading os_info From c010a00f076ef593b3d4fd6409dfbe62939def19 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:08:14 +0000 Subject: [PATCH 108/651] build(deps): update gitoxide crates --- Cargo.lock | 132 ++++++++++++++++++++++++----------------------------- Cargo.toml | 4 +- 2 files changed, 61 insertions(+), 75 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b9433eac..c75c1c55 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1046,9 +1046,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.57.1" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd025382892c7b500a9ce1582cd803f9c2ebfe44aff52e9c7f86feee7ced75e" +checksum = "31887c304d9a935f3e5494fb5d6a0106c34e965168ec0db9b457424eedd0c741" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1083,14 +1083,13 @@ dependencies = [ "parking_lot", "smallvec", "thiserror", - "unicode-normalization", ] [[package]] name = "gix-actor" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da27b5ab4ab5c75ff891dccd48409f8cc53c28a79480f1efdd33184b2dc1d958" +checksum = "0a7bb9fad6125c81372987c06469601d37e1a2d421511adb69971b9083517a8a" dependencies = [ "bstr", "btoi", @@ -1120,9 +1119,9 @@ dependencies = [ [[package]] name = "gix-commitgraph" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a39c675fd737cb43a2120eddf1aa652c19d76b28d79783a198ac1b398ed9ce6" +checksum = "82dbd7fb959862e3df2583331f0ad032ac93533e8a52f1b0694bc517f5d292bc" dependencies = [ "bstr", "gix-chunk", @@ -1134,9 +1133,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.33.1" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367304855b369cadcac4ee5fb5a3a20da9378dd7905106141070b79f85241079" +checksum = "e62bf2073b6ce3921ffa6d8326f645f30eec5fc4a8e8a4bc0fcb721a2f3f69dc" dependencies = [ "bstr", "gix-config-value", @@ -1155,9 +1154,9 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e0be46f4cf1f8f9e88d0e3eb7b29718aff23889563249f379119bd1ab6910e" +checksum = "5b8a1e7bfb37a46ed0b8468db37a6d8a0a61d56bdbe4603ae492cb322e5f3958" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1180,9 +1179,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.39.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6a0454f8c42d686f17e7f084057c717c082b7dbb8209729e4e8f26749eb93a" +checksum = "cbdcb5e49c4b9729dd1c361040ae5c3cd7c497b2260b18c954f62db3a63e98cf" dependencies = [ "bstr", "gix-hash", @@ -1192,12 +1191,13 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d7b2896edc3d899d28a646ccc6df729827a6600e546570b2783466404a42d6" +checksum = "b4669218f3ec0cbbf8f16857b32200890f8ca585f36f5817242e4115fe4551af" dependencies = [ "bstr", "dunce", + "gix-fs", "gix-hash", "gix-path", "gix-ref", @@ -1207,15 +1207,16 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.37.2" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50270e8dcc665f30ba0735b17984b9535bdf1e646c76e638e007846164d57af" +checksum = "184f7f7d4e45db0e2a362aeaf12c06c5e84817d0ef91d08e8e90170dad9f0b07" dependencies = [ "crc32fast", "crossbeam-channel", "flate2", "gix-hash", "gix-trace", + "gix-utils", "jwalk", "libc", "once_cell", @@ -1229,18 +1230,19 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7555c23a005537434bbfcb8939694e18cad42602961d0de617f8477cc2adecdd" +checksum = "4436e883d5769f9fb18677b8712b49228357815f9e4104174a6fc2d8461a437b" dependencies = [ "gix-features", + "gix-utils", ] [[package]] name = "gix-glob" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6232f18b262770e343dcdd461c0011c9b9ae27f0c805e115012aa2b902c1b8" +checksum = "4965a1d06d0ab84a29d4a67697a97352ab14ae1da821084e5afb1fd6d8191ca0" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1271,9 +1273,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd97a226ea6a7669109b84fa045bada556ec925e25145cb458adb4958b023ad0" +checksum = "1d7152181ba8f0a3addc5075dd612cea31fc3e252b29c8be8c45f4892bf87426" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1296,9 +1298,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "12.0.1" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40a439397f1e230b54cf85d52af87e5ea44cc1e7748379785d3f6d03d802b00" +checksum = "651e46174dc5e7d18b7b809d31937b6de3681b1debd78618c99162cc30fcf3e1" dependencies = [ "gix-tempfile", "gix-utils", @@ -1318,9 +1320,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.40.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c89402e8faa41b49fde348665a8f38589e461036475af43b6b70615a6a313a2" +checksum = "693ce9d30741506cb082ef2d8b797415b48e032cce0ab23eff894c19a7e4777b" dependencies = [ "bstr", "btoi", @@ -1337,13 +1339,14 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.56.1" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ae6da873de41c6c2b73570e82c571b69df5154dcd8f46dfafc6687767c33b1" +checksum = "8ba2fa9e81f2461b78b4d81a807867667326c84cdab48e0aed7b73a593aa1be4" dependencies = [ "arc-swap", "gix-date", "gix-features", + "gix-fs", "gix-hash", "gix-object", "gix-pack", @@ -1356,9 +1359,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.46.1" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "782b4d42790a14072d5c400deda9851f5765f50fe72bca6dece0da1cd6f05a9a" +checksum = "8da5f3e78c96b76c4e6fe5e8e06b76221e4a0ee9a255aa935ed1fdf68988dfd8" dependencies = [ "clru", "gix-chunk", @@ -1377,9 +1380,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dd0998ab245f33d40ca2267e58d542fe54185ebd1dc41923346cf28d179fb6" +checksum = "14a6282621aed1becc3f83d64099a564b3b9063f22783d9a87ea502a3e9f2e40" dependencies = [ "bstr", "gix-trace", @@ -1401,9 +1404,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.40.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d9bd1984638d8f3511a2fcbe84fcedb8a5b5d64df677353620572383f42649" +checksum = "5818958994ad7879fa566f5441ebcc48f0926aa027b28948e6fbf6578894dc31" dependencies = [ "gix-actor", "gix-date", @@ -1414,6 +1417,7 @@ dependencies = [ "gix-object", "gix-path", "gix-tempfile", + "gix-utils", "gix-validate", "memmap2", "thiserror", @@ -1422,9 +1426,9 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be219df5092c1735abb2a53eccdf775e945eea6986ee1b6e7a5896dccc0be704" +checksum = "613aa4d93034c5791d13bdc635e530f4ddab1412ddfb4a8215f76213177b61c7" dependencies = [ "bstr", "gix-hash", @@ -1436,9 +1440,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa78e1df3633bc937d4db15f8dca2abdb1300ca971c0fabcf9fa97e38cf4cd9f" +checksum = "288f6549d7666db74dc3f169a9a333694fc28ecd2f5aa7b2c979c89eb556751a" dependencies = [ "bstr", "gix-date", @@ -1452,9 +1456,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702de5fe5c2bbdde80219f3a8b9723eb927466e7ecd187cfd1b45d986408e45f" +checksum = "5b9b4d91dfc5c14fee61a28c65113ded720403b65a0f46169c0460f731a5d03c" dependencies = [ "gix-commitgraph", "gix-date", @@ -1467,21 +1471,21 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78f6dce0c6683e2219e8169aac4b1c29e89540a8262fef7056b31d80d969408c" +checksum = "f8d9bf462feaf05f2121cba7399dbc6c34d88a9cad58fc1e95027791d6a3c6d2" dependencies = [ "bitflags 2.4.1", "gix-path", "libc", - "windows 0.52.0", + "windows-sys 0.52.0", ] [[package]] name = "gix-tempfile" -version = "12.0.1" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8ef376d718b1f5f119b458e21b00fbf576bc9d4e26f8f383d29f5ffe3ba3eaa" +checksum = "2d337955b7af00fb87120d053d87cdfb422a80b9ff7a3aa4057a99c79422dc30" dependencies = [ "gix-fs", "libc", @@ -1498,9 +1502,9 @@ checksum = "02b202d766a7fefc596e2cc6a89cda8ad8ad733aed82da635ac120691112a9b1" [[package]] name = "gix-traverse" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb64213e52e1b726cb04581690c1e98b5910f983b977d5e9f2eb09f1a7fea6d2" +checksum = "bfc30c5b5e4e838683b59e1b0574ce6bc1c35916df9709aaab32bb7751daf08b" dependencies = [ "gix-commitgraph", "gix-date", @@ -1514,9 +1518,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0f17cceb7552a231d1fec690bc2740c346554e3be6f5d2c41dfa809594dc44" +checksum = "26f1981ecc700f4fd73ae62b9ca2da7c8816c8fd267f0185e3f8c21e967984ac" dependencies = [ "bstr", "gix-features", @@ -1528,11 +1532,12 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de6225e2de30b6e9bca2d9f1cc4731640fcef0fb3cabddceee366e7e85d3e94f" +checksum = "56e839f3d0798b296411263da6bee780a176ef8008a5dfc31287f7eda9266ab8" dependencies = [ "fastrand 2.0.1", + "unicode-normalization", ] [[package]] @@ -1607,7 +1612,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.51.1", + "windows-core", ] [[package]] @@ -3491,20 +3496,10 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core 0.51.1", + "windows-core", "windows-targets 0.48.5", ] -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.0", -] - [[package]] name = "windows-core" version = "0.51.1" @@ -3514,15 +3509,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.0", -] - [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 04c173c7..4ecf43d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,8 +49,8 @@ dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.57.1", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.37.2", optional = true } +gix = { version = "0.58.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix-features = { version = "0.38.0", optional = true } indexmap = { version = "2.1.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix From ab261a6a266ac0dfd703d836c22582a0024c1843 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 12:00:56 +0000 Subject: [PATCH 109/651] build(deps): update reviewdog/action-suggester action to v1.10.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 72ac94f9..f43ee693 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.9.0 + uses: reviewdog/action-suggester@v1.10.0 with: tool_name: starship config-schema filter_mode: nofilter From aaf768d95c592e46f12592b40916821ce4f9b9f4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 10:48:57 +0000 Subject: [PATCH 110/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.11 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 98041ac0..14217ff8 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.10 + uses: EmbarkStudios/cargo-deny-action@v1.5.11 with: command: check ${{ matrix.checks }} From 7ec0e62ea331a58b0564b5529565756d41d91d5b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 18:47:34 +0000 Subject: [PATCH 111/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.12 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 14217ff8..a41ce733 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.11 + uses: EmbarkStudios/cargo-deny-action@v1.5.12 with: command: check ${{ matrix.checks }} From 87597e19315bc35527138a703db897fe38bf990d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 13:26:00 +0000 Subject: [PATCH 112/651] build(deps): update rust crate chrono to 0.4.33 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c75c1c55..9566bd06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -394,9 +394,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index 4ecf43d4..d493f694 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.32", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.33", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } clap_complete = "4.4.9" dirs-next = "2.0.0" From a280822dc0374e53c0f95b6d977be3143fd8f214 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Jan 2024 22:38:10 +0000 Subject: [PATCH 113/651] build(deps): update rust crate serde to 1.0.196 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9566bd06..a198b582 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2637,18 +2637,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.195" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d493f694..fdee1603 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.8.1" regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.21" -serde = { version = "1.0.195", features = ["derive"] } +serde = { version = "1.0.196", features = ["derive"] } serde_json = "1.0.111" sha1 = "0.10.6" shadow-rs = { version = "0.26.1", default-features = false } From da4af64dc52463b788585ac7ee90c6b6342db63f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 02:07:04 +0000 Subject: [PATCH 114/651] build(deps): update rust crate serde_json to 1.0.112 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a198b582..88aded99 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2668,9 +2668,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "4d1bd37ce2324cf3bf85e5a25f96eb4baf0d5aa6eba43e7ae8958870c4ec48ed" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index fdee1603..a58985d1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.3", default-features = false, features = ["perf", "std rust-ini = "0.20.0" semver = "1.0.21" serde = { version = "1.0.196", features = ["derive"] } -serde_json = "1.0.111" +serde_json = "1.0.112" sha1 = "0.10.6" shadow-rs = { version = "0.26.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 7093d5cd84967edba93c9ed412b07519664f6356 Mon Sep 17 00:00:00 2001 From: tricktron Date: Sat, 27 Jan 2024 22:08:19 +0100 Subject: [PATCH 115/651] fix(bash): Handle Unbound Variables Errors in Bash (#4972) * fix: unbound bp pipestatus variable * fix: unbound preserved prompt command variable * fix: unbound starship start time variable * fix: unbound preexec_functions, precmd_functions and PROMPT_COMMAND variables. --- src/init/starship.bash | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/init/starship.bash b/src/init/starship.bash index 5a62be85..d48ce46d 100644 --- a/src/init/starship.bash +++ b/src/init/starship.bash @@ -36,7 +36,7 @@ starship_precmd() { if [[ ${BLE_ATTACHED-} && ${#BLE_PIPESTATUS[@]} -gt 0 ]]; then STARSHIP_PIPE_STATUS=("${BLE_PIPESTATUS[@]}") fi - if [[ "${#BP_PIPESTATUS[@]}" -gt "${#STARSHIP_PIPE_STATUS[@]}" ]]; then + if [[ -n "${BP_PIPESTATUS-}" ]] && [[ "${#BP_PIPESTATUS[@]}" -gt "${#STARSHIP_PIPE_STATUS[@]}" ]]; then STARSHIP_PIPE_STATUS=(${BP_PIPESTATUS[@]}) fi @@ -65,11 +65,13 @@ starship_precmd() { # command pipeline, which may rely on it. _starship_set_return "$STARSHIP_CMD_STATUS" - eval "$_PRESERVED_PROMPT_COMMAND" + if [[ -n "${_PRESERVED_PROMPT_COMMAND-}" ]]; then + eval "$_PRESERVED_PROMPT_COMMAND" + fi local -a ARGS=(--terminal-width="${COLUMNS}" --status="${STARSHIP_CMD_STATUS}" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --jobs="${NUM_JOBS}") # Prepare the timer data, if needed. - if [[ $STARSHIP_START_TIME ]]; then + if [[ -n "${STARSHIP_START_TIME-}" ]]; then STARSHIP_END_TIME=$(::STARSHIP:: time) STARSHIP_DURATION=$((STARSHIP_END_TIME - STARSHIP_START_TIME)) ARGS+=( --cmd-duration="${STARSHIP_DURATION}") @@ -90,7 +92,7 @@ if [[ ${BLE_VERSION-} && _ble_version -ge 400 ]]; then blehook PRECMD!='starship_precmd' # If the user appears to be using https://github.com/rcaloras/bash-preexec, # then hook our functions into their framework. -elif [[ "${__bp_imported:-}" == "defined" || $preexec_functions || $precmd_functions ]]; then +elif [[ "${__bp_imported:-}" == "defined" || -n "${preexec_functions-}" || -n "${precmd_functions-}" ]]; then # bash-preexec needs a single function--wrap the args into a closure and pass starship_preexec_all(){ starship_preexec "$_"; } preexec_functions+=(starship_preexec_all) @@ -111,7 +113,7 @@ else # Finally, prepare the precmd function and set up the start time. We will avoid to # add multiple instances of the starship function and keep other user functions if any. - if [[ -z "$PROMPT_COMMAND" ]]; then + if [[ -z "${PROMPT_COMMAND-}" ]]; then PROMPT_COMMAND="starship_precmd" elif [[ "$PROMPT_COMMAND" != *"starship_precmd"* ]]; then # Appending to PROMPT_COMMAND breaks exit status ($?) checking. From e7942fab20e5d196414b536fdc91734c8b44f202 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 19:56:22 +0000 Subject: [PATCH 116/651] build(deps): update rust crate indexmap to 2.2.0 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 88aded99..7f041fea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1647,9 +1647,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "cf2a4f498956c7723dc280afc6a37d0dec50b39a29e232c6187ce4503703e8c2" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2587,7 +2587,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.1.0", + "indexmap 2.2.0", "schemars_derive", "serde", "serde_json", @@ -2850,7 +2850,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.1.0", + "indexmap 2.2.0", "log", "mockall", "nix 0.27.1", @@ -3140,7 +3140,7 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.0", "serde", "serde_spanned", "toml_datetime", @@ -3162,7 +3162,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.0", "toml_datetime", "winnow", ] @@ -3173,7 +3173,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.0", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index a58985d1..67efb4c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.58.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } -indexmap = { version = "2.1.0", features = ["serde"] } +indexmap = { version = "2.2.0", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From 3dd1d83b962393c0c7ae2aeb0759fe3d1f067eb6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 04:03:22 +0000 Subject: [PATCH 117/651] build(deps): update rust crate indexmap to 2.2.1 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7f041fea..8b93900b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1647,9 +1647,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2a4f498956c7723dc280afc6a37d0dec50b39a29e232c6187ce4503703e8c2" +checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2587,7 +2587,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.2.0", + "indexmap 2.2.1", "schemars_derive", "serde", "serde_json", @@ -2850,7 +2850,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.2.0", + "indexmap 2.2.1", "log", "mockall", "nix 0.27.1", @@ -3140,7 +3140,7 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" dependencies = [ - "indexmap 2.2.0", + "indexmap 2.2.1", "serde", "serde_spanned", "toml_datetime", @@ -3162,7 +3162,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.0", + "indexmap 2.2.1", "toml_datetime", "winnow", ] @@ -3173,7 +3173,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "indexmap 2.2.0", + "indexmap 2.2.1", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index 67efb4c3..7aefcdaa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.58.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } -indexmap = { version = "2.2.0", features = ["serde"] } +indexmap = { version = "2.2.1", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From 2d4063c40ac478c0efe98b27dca3e4299616afa8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 04:03:29 +0000 Subject: [PATCH 118/651] build(deps): update rust crate serde_json to 1.0.113 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b93900b..b8213735 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2668,9 +2668,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.112" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d1bd37ce2324cf3bf85e5a25f96eb4baf0d5aa6eba43e7ae8958870c4ec48ed" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 7aefcdaa..d66c9292 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.3", default-features = false, features = ["perf", "std rust-ini = "0.20.0" semver = "1.0.21" serde = { version = "1.0.196", features = ["derive"] } -serde_json = "1.0.112" +serde_json = "1.0.113" sha1 = "0.10.6" shadow-rs = { version = "0.26.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From fef0035c1f97cb9e0c7beb63381cfa57283a89a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 18:51:49 +0000 Subject: [PATCH 119/651] build(deps): update toml crates --- Cargo.lock | 14 +++++++------- Cargo.toml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b8213735..b4050174 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2880,8 +2880,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.8", - "toml_edit 0.21.0", + "toml 0.8.9", + "toml_edit 0.21.1", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3136,15 +3136,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" dependencies = [ "indexmap 2.2.1", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.21.1", ] [[package]] @@ -3169,9 +3169,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap 2.2.1", "serde", diff --git a/Cargo.toml b/Cargo.toml index d66c9292..9aa9a287 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.2", optional = true } strsim = "0.10.1" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.8", features = ["preserve_order"] } -toml_edit = "0.21.0" +toml = { version = "0.8.9", features = ["preserve_order"] } +toml_edit = "0.21.1" unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" From 92c19ce5551712f8533569169fa8aed693c2a529 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 04:12:58 +0000 Subject: [PATCH 120/651] build(deps): update rust crate indexmap to 2.2.2 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b4050174..abe164e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1647,9 +1647,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2587,7 +2587,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.2.1", + "indexmap 2.2.2", "schemars_derive", "serde", "serde_json", @@ -2850,7 +2850,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.2.1", + "indexmap 2.2.2", "log", "mockall", "nix 0.27.1", @@ -3140,7 +3140,7 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" dependencies = [ - "indexmap 2.2.1", + "indexmap 2.2.2", "serde", "serde_spanned", "toml_datetime", @@ -3162,7 +3162,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.1", + "indexmap 2.2.2", "toml_datetime", "winnow", ] @@ -3173,7 +3173,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.1", + "indexmap 2.2.2", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index 9aa9a287..1b727860 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.58.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } -indexmap = { version = "2.2.1", features = ["serde"] } +indexmap = { version = "2.2.2", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From 497f243c105758823a6a5c774685e7a8a7ae3aa2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:07:00 +0000 Subject: [PATCH 121/651] build(deps): update dependency taplo-cli to 0.9.0 --- .github/workflows/format-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/format-workflow.yml b/.github/workflows/format-workflow.yml index 01de6611..50c96a62 100644 --- a/.github/workflows/format-workflow.yml +++ b/.github/workflows/format-workflow.yml @@ -24,7 +24,7 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Install | Taplo - run: cargo install --debug --locked --version 0.8.1 taplo-cli + run: cargo install --debug --locked --version 0.9.0 taplo-cli - name: Presets | Validate with schema run: taplo lint --schema "file://${GITHUB_WORKSPACE}/.github/config-schema.json" docs/.vuepress/public/presets/toml/*.toml From a77cd87289772760081a9c74ffe92c14196c6ae8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:35:19 +0000 Subject: [PATCH 122/651] build(deps): update crate-ci/typos action to v1.18.0 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 46e49255..9d60d97f 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.17.2 + - uses: crate-ci/typos@v1.18.0 From 623789e2fa4feadce0e5477d2518df050cdc11ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 19:43:57 +0000 Subject: [PATCH 123/651] build(deps): update rust crate clap_complete to 4.4.10 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index abe164e5..ab3c6696 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.4.9" +version = "4.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106" +checksum = "abb745187d7f4d76267b37485a65e0149edd0e91a4cfcdd3f27524ad86cee9f3" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 1b727860..1a9f2a44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.33", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.9" +clap_complete = "4.4.10" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From 428d840bce3e602fc3c55a52e441c64e7047b02e Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 4 Feb 2024 16:01:32 +0100 Subject: [PATCH 124/651] build(deps): update rust crate windows to 0.52.0 (#5379) --- Cargo.lock | 26 +++++++---- Cargo.toml | 2 +- src/modules/utils/directory_win.rs | 69 ++++++++++++++++++------------ 3 files changed, 61 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ab3c6696..1572ca04 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1612,7 +1612,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.51.1", ] [[package]] @@ -2887,7 +2887,7 @@ dependencies = [ "urlencoding", "versions", "which", - "windows 0.48.0", + "windows 0.52.0", "winres", "yaml-rust", ] @@ -3483,21 +3483,22 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.48.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ + "windows-core 0.51.1", "windows-targets 0.48.5", ] [[package]] name = "windows" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core", - "windows-targets 0.48.5", + "windows-core 0.52.0", + "windows-targets 0.52.0", ] [[package]] @@ -3509,6 +3510,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 1a9f2a44..a637aa03 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,7 +104,7 @@ features = ["preserve_order", "indexmap2"] deelevate = "0.2.0" [target.'cfg(windows)'.dependencies.windows] -version = "0.48.0" +version = "0.52.0" features = [ "Win32_Foundation", "Win32_UI_Shell", diff --git a/src/modules/utils/directory_win.rs b/src/modules/utils/directory_win.rs index 61760c8a..b34c570d 100644 --- a/src/modules/utils/directory_win.rs +++ b/src/modules/utils/directory_win.rs @@ -3,7 +3,7 @@ use std::{mem, os::windows::ffi::OsStrExt, path::Path}; use windows::{ core::PCWSTR, Win32::{ - Foundation::{CloseHandle, ERROR_INSUFFICIENT_BUFFER, HANDLE}, + Foundation::{CloseHandle, BOOL, ERROR_INSUFFICIENT_BUFFER, HANDLE}, Security::{ AccessCheck, DuplicateToken, GetFileSecurityW, MapGenericMask, SecurityImpersonation, DACL_SECURITY_INFORMATION, GENERIC_MAPPING, GROUP_SECURITY_INFORMATION, @@ -17,6 +17,17 @@ use windows::{ UI::Shell::PathIsNetworkPathW, }, }; + +struct Handle(HANDLE); + +impl Drop for Handle { + fn drop(&mut self) { + if let Err(e) = unsafe { CloseHandle(self.0) } { + log::debug!("CloseHandle failed: {e:?}"); + } + } +} + /// Checks if the current user has write access right to the `folder_path` /// /// First, the function extracts DACL from the given directory and then calls `AccessCheck` against @@ -71,27 +82,35 @@ pub fn is_write_allowed(folder_path: &Path) -> std::result::Result )); } - let mut token = HANDLE::default(); - let rc = unsafe { - OpenProcessToken( - GetCurrentProcess(), - TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_DUPLICATE | TOKEN_READ_CONTROL, - &mut token, - ) + let token = { + let mut token = HANDLE::default(); + + let rc = unsafe { + OpenProcessToken( + GetCurrentProcess(), + TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_DUPLICATE | TOKEN_READ_CONTROL, + &mut token, + ) + }; + if let Err(e) = rc { + return Err(format!( + "OpenProcessToken failed to retrieve current process' security token: {e:?}" + )); + } + + Handle(token) }; - if let Err(e) = rc.ok() { - return Err(format!( - "OpenProcessToken failed to retrieve current process' security token: {e:?}" - )); - } - let mut impersonated_token = HANDLE::default(); - let rc = unsafe { DuplicateToken(token, SecurityImpersonation, &mut impersonated_token) }; + let impersonated_token = { + let mut impersonated_token = HANDLE::default(); + let rc = unsafe { DuplicateToken(token.0, SecurityImpersonation, &mut impersonated_token) }; - if let Err(e) = rc.ok() { - unsafe { CloseHandle(token) }; - return Err(format!("DuplicateToken failed: {e:?}")); - } + if let Err(e) = rc { + return Err(format!("DuplicateToken failed: {e:?}")); + } + + Handle(impersonated_token) + }; let mapping = GENERIC_MAPPING { GenericRead: FILE_GENERIC_READ.0, @@ -104,12 +123,12 @@ pub fn is_write_allowed(folder_path: &Path) -> std::result::Result let mut priv_size = mem::size_of::() as _; let mut granted_access = 0; let mut access_rights = FILE_GENERIC_WRITE; - let mut result = 0; + let mut result = BOOL::default(); unsafe { MapGenericMask(&mut access_rights.0, &mapping) }; let rc = unsafe { AccessCheck( psecurity_descriptor, - impersonated_token, + impersonated_token.0, access_rights.0, &mapping, Some(&mut privileges), @@ -118,14 +137,10 @@ pub fn is_write_allowed(folder_path: &Path) -> std::result::Result &mut result, ) }; - unsafe { - CloseHandle(impersonated_token); - CloseHandle(token); - } - if let Err(e) = rc.ok() { + if let Err(e) = rc { return Err(format!("AccessCheck failed: {e:?}")); } - Ok(result != 0) + Ok(result.as_bool()) } From 2aa711ccc7096437e21149b18d1384534bfbcc57 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 4 Feb 2024 16:02:17 +0100 Subject: [PATCH 125/651] fix(bash): improve integration with bash-preexec (#5734) --- src/init/starship.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/init/starship.bash b/src/init/starship.bash index d48ce46d..c59fb5a4 100644 --- a/src/init/starship.bash +++ b/src/init/starship.bash @@ -36,7 +36,7 @@ starship_precmd() { if [[ ${BLE_ATTACHED-} && ${#BLE_PIPESTATUS[@]} -gt 0 ]]; then STARSHIP_PIPE_STATUS=("${BLE_PIPESTATUS[@]}") fi - if [[ -n "${BP_PIPESTATUS-}" ]] && [[ "${#BP_PIPESTATUS[@]}" -gt "${#STARSHIP_PIPE_STATUS[@]}" ]]; then + if [[ -n "${BP_PIPESTATUS-}" ]] && [[ "${#BP_PIPESTATUS[@]}" -gt 0 ]]; then STARSHIP_PIPE_STATUS=(${BP_PIPESTATUS[@]}) fi @@ -92,7 +92,7 @@ if [[ ${BLE_VERSION-} && _ble_version -ge 400 ]]; then blehook PRECMD!='starship_precmd' # If the user appears to be using https://github.com/rcaloras/bash-preexec, # then hook our functions into their framework. -elif [[ "${__bp_imported:-}" == "defined" || -n "${preexec_functions-}" || -n "${precmd_functions-}" ]]; then +elif [[ -n "${bash_preexec_imported:-}" || -n "${__bp_imported:-}" || -n "${preexec_functions-}" || -n "${precmd_functions-}" ]]; then # bash-preexec needs a single function--wrap the args into a closure and pass starship_preexec_all(){ starship_preexec "$_"; } preexec_functions+=(starship_preexec_all) From 1e43ec6e335b6f34b543b1b80b368ee4ed00ca46 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 01:05:51 +0000 Subject: [PATCH 126/651] build(deps): update dprint plugins --- .dprint.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.dprint.json b/.dprint.json index bb4f592d..27be7f06 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,9 +25,9 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.9/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.10/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", - "https://github.com/dprint/dprint-plugin-toml/releases/download/0.5.4/plugin.wasm" + "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.0/plugin.wasm" ] } From c367d0089da894cc8783f514c572d7131539bc9c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 09:10:03 +0000 Subject: [PATCH 127/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.13 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index a41ce733..9600dc74 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.12 + uses: EmbarkStudios/cargo-deny-action@v1.5.13 with: command: check ${{ matrix.checks }} From 53035044e8e46885feb55c485055ebfa5a56720e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 09:10:26 +0000 Subject: [PATCH 128/651] build(deps): update pest crates to 2.7.7 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1572ca04..99acb41b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2185,9 +2185,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.6" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" +checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" dependencies = [ "memchr", "thiserror", @@ -2196,9 +2196,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.6" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" +checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" dependencies = [ "pest", "pest_generator", @@ -2206,9 +2206,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.6" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" +checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" dependencies = [ "pest", "pest_meta", @@ -2219,9 +2219,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.6" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" +checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" dependencies = [ "once_cell", "pest", diff --git a/Cargo.toml b/Cargo.toml index a637aa03..e8fc8119 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ open = "5.0.1" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" -pest = "2.7.6" -pest_derive = "2.7.6" +pest = "2.7.7" +pest_derive = "2.7.7" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.8.1" From 7c3d34bce7eb2561d9688005df49c8a5f308d680 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:49:48 +0000 Subject: [PATCH 129/651] build(deps): update crate-ci/typos action to v1.18.1 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 9d60d97f..a4c27360 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.18.0 + - uses: crate-ci/typos@v1.18.1 From cc6ae100b33cca7de88c00817f47a9ab5d35e6c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 19:19:09 +0000 Subject: [PATCH 130/651] build(deps): update rust crate tempfile to 3.10.0 --- Cargo.lock | 25 ++++++++++++------------- Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 99acb41b..6e905c33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -180,7 +180,7 @@ dependencies = [ "futures-lite 2.1.0", "parking", "polling 3.3.1", - "rustix 0.38.30", + "rustix 0.38.31", "slab", "tracing", "windows-sys 0.52.0", @@ -219,7 +219,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -246,7 +246,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.30", + "rustix 0.38.31", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -1291,7 +1291,7 @@ dependencies = [ "itoa", "libc", "memmap2", - "rustix 0.38.30", + "rustix 0.38.31", "smallvec", "thiserror", ] @@ -2320,7 +2320,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.30", + "rustix 0.38.31", "tracing", "windows-sys 0.52.0", ] @@ -2553,9 +2553,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ "bitflags 2.4.1", "errno 0.3.8", @@ -2969,14 +2969,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.52.0", ] @@ -2986,7 +2985,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -3446,7 +3445,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.52.0", ] diff --git a/Cargo.toml b/Cargo.toml index e8fc8119..5eb5847a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,7 +125,7 @@ winres = "0.1.12" [dev-dependencies] mockall = "0.12" -tempfile = "3.9.0" +tempfile = "3.10.0" [profile.release] codegen-units = 1 From 72b61ef15359e8794b49e255288e2adbeaace281 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 03:09:05 +0000 Subject: [PATCH 131/651] build(deps): update toml crates --- Cargo.lock | 14 +++++++------- Cargo.toml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6e905c33..6fd6e51f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2880,8 +2880,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.9", - "toml_edit 0.21.1", + "toml 0.8.10", + "toml_edit 0.22.4", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3135,15 +3135,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "indexmap 2.2.2", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.1", + "toml_edit 0.22.4", ] [[package]] @@ -3168,9 +3168,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" dependencies = [ "indexmap 2.2.2", "serde", diff --git a/Cargo.toml b/Cargo.toml index 5eb5847a..17f8d3c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.2", optional = true } strsim = "0.10.1" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.9", features = ["preserve_order"] } -toml_edit = "0.21.1" +toml = { version = "0.8.10", features = ["preserve_order"] } +toml_edit = "0.22.4" unicode-segmentation = "1.10.1" unicode-width = "0.1.11" urlencoding = "2.1.3" From a0df2c28f48a8f6a7f17575615df0f5a556c9695 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 07:24:28 +0000 Subject: [PATCH 132/651] build(deps): update rust crate unicode-segmentation to 1.11.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6fd6e51f..c7253795 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3280,9 +3280,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" diff --git a/Cargo.toml b/Cargo.toml index 17f8d3c4..1c0fc669 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,7 +82,7 @@ systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.10", features = ["preserve_order"] } toml_edit = "0.22.4" -unicode-segmentation = "1.10.1" +unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" versions = "6.1.0" From 0161de8a7f613cb9ab0448bd80fca3b268bc4956 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 16:33:28 +0000 Subject: [PATCH 133/651] build(deps): update crate-ci/typos action to v1.18.2 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index a4c27360..2348e3b5 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.18.1 + - uses: crate-ci/typos@v1.18.2 From 153025e69a183db8db8e322c2d0ff2ce330232a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 19:23:35 +0000 Subject: [PATCH 134/651] build(deps): update clap crates to 4.5.0 --- Cargo.lock | 30 ++++++++++++++++++------------ Cargo.toml | 4 ++-- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7253795..fbe61e90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.18" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" dependencies = [ "clap_builder", "clap_derive", @@ -418,32 +418,32 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim", + "strsim 0.11.0", "unicase", "unicode-width", ] [[package]] name = "clap_complete" -version = "4.4.10" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb745187d7f4d76267b37485a65e0149edd0e91a4cfcdd3f27524ad86cee9f3" +checksum = "299353be8209bd133b049bf1c63582d184a8b39fd9c04f15fe65f50f88bdfe6c" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ "heck", "proc-macro2", @@ -453,9 +453,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "clru" @@ -2876,7 +2876,7 @@ dependencies = [ "shadow-rs", "shell-words", "starship-battery", - "strsim", + "strsim 0.10.1", "systemstat", "tempfile", "terminal_size", @@ -2921,6 +2921,12 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccbca6f34534eb78dbee83f6b2c9442fea7113f43d9e80ea320f0972ae5dc08d" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "syn" version = "1.0.109" diff --git a/Cargo.toml b/Cargo.toml index 1c0fc669..fb76ee7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,8 +43,8 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.33", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.4.18", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.4.10" +clap = { version = "4.5.0", features = ["derive", "cargo", "unicode"] } +clap_complete = "4.5.0" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From 26375c49cfec39927d3560ca000268dfc01e0486 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 19:23:39 +0000 Subject: [PATCH 135/651] build(deps): update reviewdog/action-suggester action to v1.11.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index f43ee693..f5b19486 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.10.0 + uses: reviewdog/action-suggester@v1.11.0 with: tool_name: starship config-schema filter_mode: nofilter From fed7445ecf8959a32a8690a5fa36c4d9765663ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 Feb 2024 06:47:15 +0000 Subject: [PATCH 136/651] build(deps): update rust crate chrono to 0.4.34 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbe61e90..42e0a658 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -394,9 +394,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index fb76ee7a..ddb1e6e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.33", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.34", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.0", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.0" dirs-next = "2.0.0" From b7eb5169d6696626d456044916b92ed8f308fb7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:59:19 +0000 Subject: [PATCH 137/651] build(deps): update rust crate indexmap to 2.2.3 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 42e0a658..90121ac6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1647,9 +1647,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2587,7 +2587,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.2.2", + "indexmap 2.2.3", "schemars_derive", "serde", "serde_json", @@ -2850,7 +2850,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.2.2", + "indexmap 2.2.3", "log", "mockall", "nix 0.27.1", @@ -3145,7 +3145,7 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.3", "serde", "serde_spanned", "toml_datetime", @@ -3167,7 +3167,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.3", "toml_datetime", "winnow", ] @@ -3178,7 +3178,7 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.3", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index ddb1e6e4..f3a506ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.58.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } -indexmap = { version = "2.2.2", features = ["serde"] } +indexmap = { version = "2.2.3", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From 1e4e967f96bca8c311b05a829c123ad466f74553 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:59:22 +0000 Subject: [PATCH 138/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.89.0 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index 27be7f06..04ce1976 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.88.10/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.89.0/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.0/plugin.wasm" From 07fbf063df76bbc7dcb2e87331427ad4e6110a48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 12:19:30 +0000 Subject: [PATCH 139/651] build(deps): update embarkstudios/cargo-deny-action action to v1.5.15 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 9600dc74..bdb28833 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.13 + uses: EmbarkStudios/cargo-deny-action@v1.5.15 with: command: check ${{ matrix.checks }} From 6ff7015175a9ee8c5f23081d708c35c844b793f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 16:03:15 +0000 Subject: [PATCH 140/651] build(deps): update rust crate toml_edit to 0.22.5 --- Cargo.lock | 29 +++++++++++++++++++---------- Cargo.toml | 2 +- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 90121ac6..4fde8a23 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1096,7 +1096,7 @@ dependencies = [ "gix-date", "itoa", "thiserror", - "winnow", + "winnow 0.5.31", ] [[package]] @@ -1149,7 +1149,7 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow", + "winnow 0.5.31", ] [[package]] @@ -1334,7 +1334,7 @@ dependencies = [ "itoa", "smallvec", "thiserror", - "winnow", + "winnow 0.5.31", ] [[package]] @@ -1421,7 +1421,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror", - "winnow", + "winnow 0.5.31", ] [[package]] @@ -2881,7 +2881,7 @@ dependencies = [ "tempfile", "terminal_size", "toml 0.8.10", - "toml_edit 0.22.4", + "toml_edit 0.22.5", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3149,7 +3149,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.4", + "toml_edit 0.22.5", ] [[package]] @@ -3169,20 +3169,20 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap 2.2.3", "toml_datetime", - "winnow", + "winnow 0.5.31", ] [[package]] name = "toml_edit" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" +checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a" dependencies = [ "indexmap 2.2.3", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.0", ] [[package]] @@ -3665,6 +3665,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451" +dependencies = [ + "memchr", +] + [[package]] name = "winres" version = "0.1.12" diff --git a/Cargo.toml b/Cargo.toml index f3a506ba..6afc9891 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ strsim = "0.10.1" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.10", features = ["preserve_order"] } -toml_edit = "0.22.4" +toml_edit = "0.22.5" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" From a84d87b909c9969df104832876b1e3e7dc27c01d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:04:38 +0000 Subject: [PATCH 141/651] build(deps): update rust crate toml_edit to 0.22.6 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4fde8a23..d3e40b34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2881,7 +2881,7 @@ dependencies = [ "tempfile", "terminal_size", "toml 0.8.10", - "toml_edit 0.22.5", + "toml_edit 0.22.6", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3149,7 +3149,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.5", + "toml_edit 0.22.6", ] [[package]] @@ -3174,9 +3174,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ "indexmap 2.2.3", "serde", diff --git a/Cargo.toml b/Cargo.toml index 6afc9891..6b1ec6ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ strsim = "0.10.1" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.10", features = ["preserve_order"] } -toml_edit = "0.22.5" +toml_edit = "0.22.6" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" From ebf6bdb4c5e6d7c28ed7faa0b5d195246e3937ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 15:01:51 +0000 Subject: [PATCH 142/651] build(deps): update rust crate clap to 4.5.1 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d3e40b34..18bc57f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,9 +408,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -418,9 +418,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 6b1ec6ec..414320fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.34", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.0", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.5.1", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.0" dirs-next = "2.0.0" dunce = "1.0.4" From 186f99717efa0aba56bc6321a8c16ecb46478c43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 Feb 2024 01:56:59 +0000 Subject: [PATCH 143/651] build(deps): update rust crate clap_complete to 4.5.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18bc57f8..62b47e26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -432,9 +432,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299353be8209bd133b049bf1c63582d184a8b39fd9c04f15fe65f50f88bdfe6c" +checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index 414320fa..9832b714 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.34", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.1", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.5.0" +clap_complete = "4.5.1" dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" From 4907eac3cf6348f666e8c50d5ff57a1d1e504662 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 Feb 2024 22:31:31 +0000 Subject: [PATCH 144/651] build(deps): update rust crate process_control to 4.1.0 --- Cargo.lock | 7 +++---- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62b47e26..8ae8b132 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2385,14 +2385,13 @@ dependencies = [ [[package]] name = "process_control" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e056a69288d0a211f4c74c48391c6eb86e714fdcb9dc58a9f34302da9c20bf" +checksum = "4d18334c4a4b2770ee894e63cf466d5a9ea449cf29e321101b0b135a747afb6f" dependencies = [ - "crossbeam-channel", "libc", "signal-hook 0.3.17", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9832b714..fce392e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,7 +89,7 @@ versions = "6.1.0" which = "6.0.0" yaml-rust = "0.4.5" -process_control = { version = "4.0.3", features = ["crossbeam-channel"] } +process_control = { version = "4.1.0", features = ["crossbeam-channel"] } guess_host_triple = "0.1.3" home = "0.5.9" From 8ab5c0bc3829185d2b4c083e3fffa0c28323daa5 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 18 Feb 2024 08:22:15 +0100 Subject: [PATCH 145/651] build(deps): update github artifact actions to v4 (#5782) --- .github/workflows/release.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 666bd6d6..8e2bd1ae 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -140,7 +140,7 @@ jobs: cd - - name: Release | Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.name }} path: ${{ matrix.name }} @@ -148,7 +148,7 @@ jobs: - name: Release | Upload installer artifacts [Windows] continue-on-error: true if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: starship-${{ matrix.target }}.msi path: target/wix/starship-${{ matrix.target }}.msi @@ -226,7 +226,7 @@ jobs: npm run build - name: Notarize | Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ matrix.name }} path: artifacts @@ -238,7 +238,7 @@ jobs: run: bash install/macos_packages/build_and_notarize.sh starship docs ${{ matrix.arch }} ${{ matrix.pkgname }} - name: Notarize | Upload Notarized Flat Installer - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.pkgname }} path: ${{ matrix.pkgname }} @@ -247,10 +247,11 @@ jobs: run: tar czvf ${{ matrix.name }} starship - name: Notarize | Upload Notarized Binary - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.name }} path: ${{ matrix.name }} + overwrite: true - name: Cleanup Secrets if: ${{ always() }} @@ -265,7 +266,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 - name: Setup | Checksums run: for file in starship-*/starship-*; do openssl dgst -sha256 -r "$file" | awk '{print $1}' > "${file}.sha256"; done @@ -336,7 +337,7 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Setup | Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 - run: pwsh ./install/windows/choco/update.ps1 env: STARSHIP_VERSION: ${{ needs.release_please.outputs.tag_name }} From 34a5731a352a5351daf6fd2258d7d6bc52ceb297 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 00:04:33 +0000 Subject: [PATCH 146/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.89.1 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index 04ce1976..1dced25c 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.89.0/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.89.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.0/plugin.wasm" From 1fed469ba8d8c3e7786e3a57822edb9fa024f4b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 08:02:10 +0000 Subject: [PATCH 147/651] build(deps): update rust crate semver to 1.0.22 --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ae8b132..6f09f7a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2621,9 +2621,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "semver-parser" @@ -2868,7 +2868,7 @@ dependencies = [ "regex", "rust-ini", "schemars", - "semver 1.0.21", + "semver 1.0.22", "serde", "serde_json", "sha1", diff --git a/Cargo.toml b/Cargo.toml index fce392e5..6bd78b63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ rand = "0.8.5" rayon = "1.8.1" regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" -semver = "1.0.21" +semver = "1.0.22" serde = { version = "1.0.196", features = ["derive"] } serde_json = "1.0.113" sha1 = "0.10.6" From 0891ec27a40421cd742a853885731aed63f412aa Mon Sep 17 00:00:00 2001 From: Gilbert Sanchez Date: Mon, 19 Feb 2024 08:01:51 -0800 Subject: [PATCH 148/651] fix(character): also handle vi edit mode in pwsh (#5775) * Add missing vi for char for Shell::Pwsh https://github.com/starship/starship/pull/5478#issuecomment-1886829331 --- src/modules/character.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/character.rs b/src/modules/character.rs index 20695f63..232b3828 100644 --- a/src/modules/character.rs +++ b/src/modules/character.rs @@ -37,7 +37,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { let mode = match (&context.shell, keymap) { (Shell::Fish, "default") | (Shell::Zsh, "vicmd") - | (Shell::Cmd | Shell::PowerShell, "vi") => ShellEditMode::Normal, + | (Shell::Cmd | Shell::PowerShell | Shell::Pwsh, "vi") => ShellEditMode::Normal, (Shell::Fish, "visual") => ShellEditMode::Visual, (Shell::Fish, "replace") => ShellEditMode::Replace, (Shell::Fish, "replace_one") => ShellEditMode::ReplaceOne, From a0408543dbfb3f0e373e1f9dcfa98e0da39b9702 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 01:18:24 +0000 Subject: [PATCH 149/651] build(deps): update rust crate serde to 1.0.197 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f09f7a2..27b9385b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2636,18 +2636,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 6bd78b63..a2b4020b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.8.1" regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.22" -serde = { version = "1.0.196", features = ["derive"] } +serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.113" sha1 = "0.10.6" shadow-rs = { version = "0.26.1", default-features = false } From 505d482874d188b78f563a1169dc37c442b7af9d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 03:20:13 +0000 Subject: [PATCH 150/651] build(deps): update rust crate serde_json to 1.0.114 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 27b9385b..65c75d6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2667,9 +2667,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index a2b4020b..875f5cb9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.3", default-features = false, features = ["perf", "std rust-ini = "0.20.0" semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } -serde_json = "1.0.113" +serde_json = "1.0.114" sha1 = "0.10.6" shadow-rs = { version = "0.26.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From c04821b96e9ddb477e87ff2ffb42a5babac5bfbc Mon Sep 17 00:00:00 2001 From: Kolen Cheung Date: Thu, 22 Feb 2024 14:26:54 +0000 Subject: [PATCH 151/651] docs(preset): add conda config to gruvbox-rainbow (#5761) gruvbox-rainbow add conda --- docs/.vuepress/public/presets/toml/gruvbox-rainbow.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/.vuepress/public/presets/toml/gruvbox-rainbow.toml b/docs/.vuepress/public/presets/toml/gruvbox-rainbow.toml index f9f92a6f..aee6704e 100644 --- a/docs/.vuepress/public/presets/toml/gruvbox-rainbow.toml +++ b/docs/.vuepress/public/presets/toml/gruvbox-rainbow.toml @@ -21,6 +21,7 @@ $haskell\ $python\ [](fg:color_blue bg:color_bg3)\ $docker_context\ +$conda\ [](fg:color_bg3 bg:color_bg1)\ $time\ [ ](fg:color_bg1)\ @@ -143,6 +144,10 @@ symbol = "" style = "bg:color_bg3" format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)' +[conda] +style = "bg:color_bg3" +format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)' + [time] disabled = false time_format = "%R" From eeadf432e6688bcf79e8e2a953ea3bdc6de16b1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 14:28:55 +0000 Subject: [PATCH 152/651] build(deps): update rust crate strsim to 0.11.0 --- Cargo.lock | 10 ++-------- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 65c75d6d..a54b80c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -425,7 +425,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim", "unicase", "unicode-width", ] @@ -2875,7 +2875,7 @@ dependencies = [ "shadow-rs", "shell-words", "starship-battery", - "strsim 0.10.1", + "strsim", "systemstat", "tempfile", "terminal_size", @@ -2914,12 +2914,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "strsim" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccbca6f34534eb78dbee83f6b2c9442fea7113f43d9e80ea320f0972ae5dc08d" - [[package]] name = "strsim" version = "0.11.0" diff --git a/Cargo.toml b/Cargo.toml index 875f5cb9..5a88ef9f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,7 +77,7 @@ shadow-rs = { version = "0.26.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } -strsim = "0.10.1" +strsim = "0.11.0" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.10", features = ["preserve_order"] } From 5163dbad8d09ec77dedc906072b73623191c8c5d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 18:09:17 +0000 Subject: [PATCH 153/651] build(deps): update rust crate windows to 0.53.0 --- Cargo.lock | 76 ++++++++++++++++++++++++++++++------------------------ Cargo.toml | 2 +- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a54b80c5..f917930b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -403,7 +403,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -2886,7 +2886,7 @@ dependencies = [ "urlencoding", "versions", "which", - "windows 0.52.0", + "windows 0.53.0", "winres", "yaml-rust", ] @@ -3491,12 +3491,12 @@ dependencies = [ [[package]] name = "windows" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.0", + "windows-core 0.53.0", + "windows-targets 0.52.3", ] [[package]] @@ -3510,11 +3510,21 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" dependencies = [ - "windows-targets 0.52.0", + "windows-result", + "windows-targets 0.52.3", +] + +[[package]] +name = "windows-result" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64" +dependencies = [ + "windows-targets 0.52.3", ] [[package]] @@ -3532,7 +3542,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.3", ] [[package]] @@ -3552,17 +3562,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.3", + "windows_aarch64_msvc 0.52.3", + "windows_i686_gnu 0.52.3", + "windows_i686_msvc 0.52.3", + "windows_x86_64_gnu 0.52.3", + "windows_x86_64_gnullvm 0.52.3", + "windows_x86_64_msvc 0.52.3", ] [[package]] @@ -3573,9 +3583,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" [[package]] name = "windows_aarch64_msvc" @@ -3585,9 +3595,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" [[package]] name = "windows_i686_gnu" @@ -3597,9 +3607,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" [[package]] name = "windows_i686_msvc" @@ -3609,9 +3619,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" [[package]] name = "windows_x86_64_gnu" @@ -3621,9 +3631,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" [[package]] name = "windows_x86_64_gnullvm" @@ -3633,9 +3643,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" [[package]] name = "windows_x86_64_msvc" @@ -3645,9 +3655,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" diff --git a/Cargo.toml b/Cargo.toml index 5a88ef9f..f5f8db84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,7 +104,7 @@ features = ["preserve_order", "indexmap2"] deelevate = "0.2.0" [target.'cfg(windows)'.dependencies.windows] -version = "0.52.0" +version = "0.53.0" features = [ "Win32_Foundation", "Win32_UI_Shell", From 3c063749076da50f39286888a3781cfdbee3eaf4 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Sat, 24 Feb 2024 17:49:00 +0900 Subject: [PATCH 154/651] docs(i18n): new Crowdin updates (#5682) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations nerd-font.md (Chinese Simplified) * New translations tokyo-night.md (Chinese Simplified) * New translations gruvbox-rainbow.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (Arabic) * New translations readme.md (Arabic) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Spanish) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Spanish) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Ukrainian) * New translations readme.md (Indonesian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (German) * New translations gruvbox-rainbow.md (German) --- docs/ar-SA/advanced-config/README.md | 24 +- docs/ar-SA/config/README.md | 3 +- docs/ar-SA/installing/README.md | 30 +- docs/ar-SA/migrating-to-0.45.0/README.md | 8 +- docs/bn-BD/advanced-config/README.md | 24 +- docs/bn-BD/config/README.md | 3 +- docs/ckb-IR/advanced-config/README.md | 24 +- docs/ckb-IR/config/README.md | 3 +- docs/de-DE/README.md | 8 +- docs/de-DE/advanced-config/README.md | 34 +- docs/de-DE/config/README.md | 32 +- docs/de-DE/guide/README.md | 38 +- docs/de-DE/presets/README.md | 4 +- docs/de-DE/presets/gruvbox-rainbow.md | 6 +- docs/es-ES/advanced-config/README.md | 24 +- docs/es-ES/config/README.md | 45 +- docs/fr-FR/advanced-config/README.md | 24 +- docs/fr-FR/config/README.md | 3 +- docs/id-ID/advanced-config/README.md | 24 +- docs/id-ID/config/README.md | 3 +- docs/id-ID/installing/README.md | 2 +- docs/it-IT/advanced-config/README.md | 24 +- docs/it-IT/config/README.md | 3 +- docs/ja-JP/advanced-config/README.md | 24 +- docs/ja-JP/config/README.md | 3 +- docs/ko-KR/advanced-config/README.md | 24 +- docs/ko-KR/config/README.md | 3 +- docs/nl-NL/advanced-config/README.md | 24 +- docs/nl-NL/config/README.md | 3 +- docs/no-NO/advanced-config/README.md | 24 +- docs/no-NO/config/README.md | 3 +- docs/pl-PL/advanced-config/README.md | 24 +- docs/pl-PL/config/README.md | 3 +- docs/pt-BR/advanced-config/README.md | 24 +- docs/pt-BR/config/README.md | 9 +- docs/pt-PT/advanced-config/README.md | 24 +- docs/pt-PT/config/README.md | 3 +- docs/ru-RU/advanced-config/README.md | 24 +- docs/ru-RU/config/README.md | 3 +- docs/ru-RU/faq/README.md | 36 +- docs/ru-RU/guide/README.md | 66 +- docs/ru-RU/installing/README.md | 2 +- docs/tr-TR/advanced-config/README.md | 24 +- docs/tr-TR/config/README.md | 3 +- docs/uk-UA/advanced-config/README.md | 24 +- docs/uk-UA/config/README.md | 1 + docs/uk-UA/faq/README.md | 8 +- docs/vi-VN/advanced-config/README.md | 24 +- docs/vi-VN/config/README.md | 3 +- docs/zh-CN/README.md | 18 +- docs/zh-CN/advanced-config/README.md | 28 +- docs/zh-CN/config/README.md | 869 ++++++++++++----------- docs/zh-CN/faq/README.md | 8 +- docs/zh-CN/guide/README.md | 12 +- docs/zh-CN/presets/gruvbox-rainbow.md | 2 +- docs/zh-CN/presets/nerd-font.md | 6 +- docs/zh-CN/presets/tokyo-night.md | 2 +- docs/zh-TW/advanced-config/README.md | 24 +- docs/zh-TW/config/README.md | 401 +++++------ docs/zh-TW/migrating-to-0.45.0/README.md | 140 ++-- 60 files changed, 1400 insertions(+), 916 deletions(-) diff --git a/docs/ar-SA/advanced-config/README.md b/docs/ar-SA/advanced-config/README.md index f16f8268..e33ec300 100644 --- a/docs/ar-SA/advanced-config/README.md +++ b/docs/ar-SA/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### مثال diff --git a/docs/ar-SA/config/README.md b/docs/ar-SA/config/README.md index 23325dc0..f00c2b14 100644 --- a/docs/ar-SA/config/README.md +++ b/docs/ar-SA/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/ar-SA/installing/README.md b/docs/ar-SA/installing/README.md index 69b986a5..197cade3 100644 --- a/docs/ar-SA/installing/README.md +++ b/docs/ar-SA/installing/README.md @@ -1,19 +1,19 @@ -# التثبيت المتقدم +# Advanced Installation -To install starship, you need to do two things: +لثتبيت starship تحتاج للقيام بشيئين هما: -1. Get the **starship** binary onto your computer -1. Tell your shell to use the starship binary as its prompt by modifying its init scripts +1. ثبت ملفات **starship** على جهازك +1. تنبيه موجه الأوامر بإن يقوم بجعل سطر الأوامر ل starship وذلك بتعديل كود الإبتداء -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +غالبية المستخدمين [الصفحة الرئيسية ](/guide/#🚀-installation) سوف تلبي احتياجاتهم. لكن، من أجل الاستخدام المتقدم، هناك حاجة لتوجيهات أخرى. -There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! +هناك العديد من الحالات التي لا تلبي المعلومات في ملف README.md احتياجها ولذلك هذه بعض إرشادات التثبيت الإضافية مقدمة من مجتمع starship. إذا كانت لديك ملاحظة وقمت بحلها ولم تجد هذا الحل لها ضمن الحلول التالية، الرجاء أضفها هنا! ## [Chocolatey](https://chocolatey.org) ### المتطلبات الأساسية -Head over to the [Chocolatey installation page](https://chocolatey.org/install) and follow the instructions to install Chocolatey. +إذهب إلى [ صفحة تثبيت Chocolatey ](https://chocolatey.org/install) و اتبع الإرشادات لتثبيت البرنامج. ### التثبيت @@ -39,7 +39,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.term ### التثبيت -On Funtoo Linux, starship can be installed from [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage: +يمكن تثبيت starship في Funtoo linux باستخدام [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage: ```sh emerge app-shells/starship @@ -47,17 +47,17 @@ emerge app-shells/starship ## [Nix](https://nixos.wiki/wiki/Nix) -### Getting the Binary +### احصل على ملفات الباينري -#### Imperatively +#### بشكل مباشر ```sh nix-env -iA nixos.starship ``` -#### Declarative, single user, via [home-manager](https://github.com/nix-community/home-manager) +#### بشكل تصريحي، من أجل مستخدم واحد، عبر [home-manager](https://github.com/nix-community/home-manager) -Enable the `programs.starship` module in your `home.nix` file, and add your settings +مكن كود`programs.starship` في ملف`home.nix` و أضف إلى الإعدادات الإعدادات التالية ```nix { @@ -78,15 +78,15 @@ Enable the `programs.starship` module in your `home.nix` file, and add your sett } ``` -then run +ثم بعد ذلك شغل ```sh home-manager switch ``` -#### Declarative, system-wide, with NixOS +#### بشكل تصريحي، لعدة مستخدمين -Add `pkgs.starship` to `environment.systemPackages` in your `configuration.nix`, then run +أضف `pkgs.starship` إلى `environment.systemPackages` في `configuration.nix`, بعد ذلك شغل ```sh sudo nixos-rebuild switch diff --git a/docs/ar-SA/migrating-to-0.45.0/README.md b/docs/ar-SA/migrating-to-0.45.0/README.md index 18661c3b..62e754e0 100644 --- a/docs/ar-SA/migrating-to-0.45.0/README.md +++ b/docs/ar-SA/migrating-to-0.45.0/README.md @@ -1,10 +1,10 @@ -# Migrating to v0.45.0 +# الإنتقال إلى النسخة v0.45.0 -Starship v0.45.0 is a release containing breaking changes, in preparation for the big v1.0.0. We have made some major changes around how configuration is done on the prompt, to allow for a greater degree of customization. +النسخة 0.45.0 سوف تستمر في تقديم تحديثات جذرية حتى الوصول للنسخة المستقرة 1.0.0. لقد قمنا بتغييرات رئيسية لكيفية إعداد سطر الأوامر، وذلك يسمح بطيف أكبر من قابلية التخصيص. -This guide is intended to walk you through the breaking changes. +هذا الدليل هو جولة خلال التغييرات الرئيسية التي قمنا بها. -## `prompt_order` has been replaced by a root-level `format` +## `prompt_order`تم استبداله بتنسيق root-level `` Previously to v0.45.0, `prompt_order` would accept an array of module names in the order which they should be rendered by Starship. diff --git a/docs/bn-BD/advanced-config/README.md b/docs/bn-BD/advanced-config/README.md index 9dc0b4c6..2e6c8aa0 100644 --- a/docs/bn-BD/advanced-config/README.md +++ b/docs/bn-BD/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/docs/bn-BD/config/README.md b/docs/bn-BD/config/README.md index dccdabf2..1619411e 100644 --- a/docs/bn-BD/config/README.md +++ b/docs/bn-BD/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/ckb-IR/advanced-config/README.md b/docs/ckb-IR/advanced-config/README.md index 9b407722..24f66b42 100644 --- a/docs/ckb-IR/advanced-config/README.md +++ b/docs/ckb-IR/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### نموونە diff --git a/docs/ckb-IR/config/README.md b/docs/ckb-IR/config/README.md index 7bc81eea..8c7b62f0 100644 --- a/docs/ckb-IR/config/README.md +++ b/docs/ckb-IR/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/de-DE/README.md b/docs/de-DE/README.md index 032a544d..6b2e0011 100644 --- a/docs/de-DE/README.md +++ b/docs/de-DE/README.md @@ -45,7 +45,7 @@ description: Starship ist eine minimale, super schnelle, und extrem anpassbare P curl -sS https://starship.rs/install.sh | sh ``` - Um Starship selbst zu aktualisieren, führe das Skript oben erneut aus. Die vorhandene Version wird ersetzt, ohne das deine Konfiguration von Starship verloren geht. + Führe das Skript oben erneut aus, um Starship selbst zu aktualisieren. Die vorhandene Version wird ersetzt, ohne dass deine Starship-Konfiguration verloren geht. #### Installation mithilfe eines Paket-Managers @@ -66,7 +66,7 @@ description: Starship ist eine minimale, super schnelle, und extrem anpassbare P #### Bash - Trage folgendes am Ende der `~/.bashrc` ein: + Füge dies ans Ende von `~/.bashrc`: ```sh # ~/.bashrc @@ -99,7 +99,7 @@ description: Starship ist eine minimale, super schnelle, und extrem anpassbare P #### Powershell - Trage das folgende am Ende von `Microsoft.PowerShell_profile.ps1` ein. Du kannst den Speicherort dieser Datei überprüfen, indem du die `$PROFILE` Variable in PowerShell abfragst. Der Pfat lautet normalerweise `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` unter Windows und `~/.config/powershell/Microsoft.PowerShell_profile.ps1` auf -Nix. + Füge das Folgende ans Ende von `Microsoft.PowerShell_profile.ps1` an. Du kannst den Speicherort dieser Datei überprüfen, indem du die `$PROFILE` Variable in PowerShell abfragst. Normalerweise ist der Pfad `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` oder `~/.config/powershell/Microsoft.PowerShell_profile.ps1` auf -Nix. ```sh Invoke-Expression (&starship init powershell) @@ -153,7 +153,7 @@ description: Starship ist eine minimale, super schnelle, und extrem anpassbare P ::: - Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + Füge folgendes zum Ende deiner Nushell env Datei hinzu (finde sie, indem du `$nu.env-path` in Nushell ausführst): ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/de-DE/advanced-config/README.md b/docs/de-DE/advanced-config/README.md index ff7eb281..34f09cdf 100644 --- a/docs/de-DE/advanced-config/README.md +++ b/docs/de-DE/advanced-config/README.md @@ -1,6 +1,6 @@ # Erweiterte Konfiguration -Auch wenn Starship eine vielseitige Shell ist, reichen manche Konfigurationen in der `starship.toml` nicht aus, um erweiterte Einstellungen vorzunehmen. Diese Seite beschreibt einige fortgeschrittene Konfigurationen für Starship. +Auch wenn Starship eine vielseitige Shell ist, reichen manche Konfigurationen in der `starship.toml` nicht aus, um manche Sachen zu erreichen. Diese Seite beschreibt einige fortgeschrittene Konfigurationen für Starship. ::: warning @@ -10,7 +10,7 @@ Die hier beschriebenen Konfigurationen werden sich mit kommenden Updates von Sta ## TransientPrompt in PowerShell -It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put this statement in your `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`. +Es ist möglich, die zuvor geprintete Prompt mit einem benutzerdefinierten String zu ersetzen. Das ist in Fällen nützlich, in denen nicht immer die ganze Information der Prompt gebraucht wird. Führe `Enable-TransientPrompt` in deiner Shell-Session aus, um dieses Verhalten zu aktivieren. Füge das Statement in dein `$PROFILE` ein, um diese Funktion dauerhaft zu aktivieren. Transience can be disabled on-the-fly with `Disable-TransientPrompt`. By default, the left side of input gets replaced with `>`. To customize this, define a new function called `Invoke-Starship-TransientFunction`. For example, to display Starship's `character` module here, you would do @@ -26,7 +26,7 @@ Enable-TransientPrompt ## TransientPrompt and TransientRightPrompt in Cmd -Clink allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, run `clink set prompt.transient ` where \ can be one of: +Clink allows you to replace the previous-printed prompt with custom strings. Das ist in Fällen nützlich, in denen nicht immer die ganze Information der Prompt gebraucht wird. To enable this, run `clink set prompt.transient ` where \ can be one of: - `always`: always replace the previous prompt - `same_dir`: replace the previous prompt only if the working directory is same @@ -56,7 +56,7 @@ load(io.popen('starship init cmd'):read("*a"))() ## TransientPrompt and TransientRightPrompt in Fish -It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`. +Es ist möglich, die zuvor geprintete Prompt mit einem benutzerdefinierten String zu ersetzen. Das ist in Fällen nützlich, in denen nicht immer die ganze Information der Prompt gebraucht wird. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`. Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct. @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -129,7 +149,7 @@ eval $(starship init bash) set +o functrace ``` -## Custom pre-prompt and pre-execution Commands in PowerShell +## Benutzerdefinierte Pre-Prompt- und Pre-Execution-Befehle in PowerShell PowerShell does not have a formal preexec/precmd framework like most other shells. Because of this, it is difficult to provide fully customizable hooks in `powershell`. Starship bietet daher die begrenzte Möglichkeit, eigene Funktionen in das prompt rendering Verfahren einzufügen: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Beispiel diff --git a/docs/de-DE/config/README.md b/docs/de-DE/config/README.md index 96b5ba07..32d6f4d9 100644 --- a/docs/de-DE/config/README.md +++ b/docs/de-DE/config/README.md @@ -1,6 +1,6 @@ # Konfiguration -Um mit der Konfiguration von Starship zu beginnen, muss eine leere Datei in diesem Pfad erstellt werden: `~/.config/starship.toml`. +Um mit der Konfiguration von Starship zu beginnen, musst du die folgende Datei erstellen: `~/.config/starship.toml`. ```sh mkdir -p ~/.config && touch ~/.config/starship.toml @@ -9,24 +9,25 @@ mkdir -p ~/.config && touch ~/.config/starship.toml Die gesamte Konfiguration von Starship erfolgt in dieser [TOML](https://github.com/toml-lang/toml)-Datei: ```toml -# Get editor completions based on the config schema + +# Editor Vervollständigungen basierend auf dem Konfigurations-Schema erhalten "$schema" = 'https://starship.rs/config-schema.json' -# Inserts a blank line between shell prompts +# Fügt eine Leerzeile zwischen den Eingabeaufforderungen ein add_newline = true -# Replace the '❯' symbol in the prompt with '➜' -[character] # The name of the module we are configuring is 'character' -success_symbol = '[➜](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green' +# Ersetzt das '❯' Zeichen in der Prompt mit '➜' +[character] # Der name des Moduls das wir ändern ist 'character' +success_symbol = '[➜](bold green)' # Der 'success_symbol' Teil wird auf '➜' mit der farbe 'bold green' gesetzt -# Disable the package module, hiding it from the prompt completely +# Deaktiviert das "package" Modul, damit es in der Eingabeaufforderung nicht mehr zu sehen ist [package] disabled = true ``` -### Config File Location +### Ort der Konfigurationsdatei -Die voreingestellte Konfigurations-Datei kann mit der `STARSHIP_CONFIG` Umgebungsvariable verändert werden. Hier z. Bsp. für die BASH shell, hinzuzufügen zur ~/. bashrc: +Du kannst die voreingestellte Konfigurations-Datei mit der `STARSHIP_CONFIG` Umgebungsvariable verändern: ```sh export STARSHIP_CONFIG=~/example/non/default/path/starship.toml @@ -38,7 +39,7 @@ export STARSHIP_CONFIG=~/example/non/default/path/starship.toml $ENV:STARSHIP_CONFIG = "$HOME\example\non\default\path\starship.toml" ``` -Or for Cmd (Windows) would be adding this line to your `starship.lua`: +Oder für Cmd (Windows) diese Zeile (wieder zur `starship.lua`): ```lua os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\starship.toml') @@ -46,7 +47,7 @@ os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\star ### Protokollierung -By default starship logs warnings and errors into a file named `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`, where the session key is corresponding to an instance of your terminal. Das kann jedoch durch die Nutzung der `STARSHIP_CACHE` Umgebungsvariable verändert werden: +Standardmäßig protokolliert Starship Warnungen und Fehler in einer Datei names `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`, wobei der session key zu der Instanz deines Terminals korrespondiert. Das kann jedoch durch die Nutzung der `STARSHIP_CACHE` Umgebungsvariable verändert werden: ```sh export STARSHIP_CACHE=~/.starship/cache @@ -58,7 +59,7 @@ export STARSHIP_CACHE=~/.starship/cache $ENV:STARSHIP_CACHE = "$HOME\AppData\Local\Temp" ``` -Or for Cmd (Windows) would be adding this line to your `starship.lua`: +Oder für Cmd (Windows) diese Zeile (wieder zur `starship.lua`): ```lua os.setenv('STARSHIP_CACHE', 'C:\\Users\\user\\AppData\\Local\\Temp') @@ -74,9 +75,9 @@ Die meisten Module haben einen Präfix der standardmäßigen terminal-Farbe (z.B ### Strings -In TOML syntax, [text values](https://toml.io/en/v1.0.0#string) are declared with `'`, `"`, `'''`, or `"""`. +In der TOML Syntax werden [Zeichenketten](https://toml.io/en/v1.0.0#string) mit `'`, `"`, `'''`, oder `"""` eingesetzt. -The following Starship syntax symbols have special usage in a format string and must be escaped to display as that character: `$ [ ] ( )`. +Die folgende Starship Syntax Symbole haben eine spezielle Rolle in einem String, und müssen demnach als Spezialzeichen markiert werden, um als normales Zeichen angezeigt zu werden: `$ [ ] ( )`. | Symbol | Type | Notes | | ------ | ------------------------- | ------------------------------------------------------ | @@ -543,7 +544,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1166,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/de-DE/guide/README.md b/docs/de-DE/guide/README.md index c2744e21..7c0ceaec 100644 --- a/docs/de-DE/guide/README.md +++ b/docs/de-DE/guide/README.md @@ -35,7 +35,7 @@ Stand With Ukraine

@@ -108,7 +108,7 @@ >Portugiesisch (Brasilien)   Vietnamesisch   -### Schritt 2. Set up your shell to use Starship +### Schritt 2. Richte deine Shell für die Nutzung von Starship ein -Konfigurieren deine Shell um Starship zu initialisieren. Wähle dafür deine Shell aus der Liste aus: +Konfiguriere deine Shell, um Starship automatisch zu starten. Wähle dafür deine Shell aus der Liste aus:
Bash -Trage folgendes am Ende der `~/.bashrc` ein: +Füge dies ans Ende von `~/.bashrc`: ```sh eval "$(starship init bash)" @@ -292,7 +292,7 @@ eval "$(starship init bash)"
⌘ Cmd -Du musst [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) mit Cmd verwenden. Create a file at this path `%LocalAppData%\clink\starship.lua` with the following contents: +Du musst [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) mit Cmd verwenden. Erstelle eine Datei in diesem Pfad `%LocalAppData%\clink\starship.lua` mit dem folgenden Inhalt: ```lua load(io.popen('starship init cmd'):read("*a"))() @@ -338,27 +338,27 @@ eval $(starship init ion)
Nushell -Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): +Füge folgendes zum Ende deiner Nushell env Datei hinzu (finde sie, indem du `$nu.env-path` in Nushell ausführst): ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` -Und füge folgendes am Ende deiner Nushell-Konfiguration hinzu (du findest diese, indem du folgenden Befehl in Nushell ausführst `$nu.config-path`): +Und füge Folgendes am Ende deiner Nushell-Konfiguration hinzu (finde sie, indem du folgenden Befehl in Nushell ausführst `$nu.config-path`): ```sh use ~/.cache/starship/init.nu ``` -Note: Only Nushell v0.78+ is supported +Beachte: Nushell wird erst ab v0.78+ unterstützt
PowerShell -Add the following to the end of your PowerShell configuration (find it by running `$PROFILE`): +Füge Folgendes am Ende deiner PowerShell-Konfiguration hinzu (finde sie, indem du folgenden Befehl ausführst `$PROFILE`): ```powershell Invoke-Expression (&starship init powershell) @@ -369,7 +369,7 @@ Invoke-Expression (&starship init powershell)
Tcsh -Trage folgendes am Ende von `~/.bashrc` ein: +Füge Folgendes am Ende von `~/.tcshrc` ein: ```sh eval `starship init tcsh` @@ -421,17 +421,17 @@ Falls du an Starship mitwirken willst, wirf bitte einen Blick auf den [Leitfaden Schaut euch bitte auch die Projekte an, die die Entstehung von Starship inspiriert haben. 🙏 -- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – A ZSH prompt for astronauts. +- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – Eine ZSH Prompt für Astronauten. -- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-shell robbyrussell theme written in JavaScript. +- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-Shell robbyrussell Thema geschrieben in JavaScript. -- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons. +- **[reujab/silber](https://github.com/reujab/silver)** – Eine cross-shell anpassbare Powerline-Prompt mit Icons. -## ❤️ Sponsors +## ❤️ Sponsoren -Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. +Unterstütze dieses Projekt, indem du [ein Sponsor wirst](https://github.com/sponsors/starship). Dein Name und Logo wird hier mit einem Link zu deiner Website erscheinen. -**Supporter Tier** +**Unterstützer** - [Appwrite](https://appwrite.io/) diff --git a/docs/de-DE/presets/README.md b/docs/de-DE/presets/README.md index 3d975aee..ca52d7e8 100644 --- a/docs/de-DE/presets/README.md +++ b/docs/de-DE/presets/README.md @@ -66,6 +66,6 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t ## [Gruvbox Rainbow](./gruvbox-rainbow.md) -This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). +Diese Voreinstellung ist stark inspiriert von [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). -[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) +[![Screenshot von Gruvbox Regenbogen](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) diff --git a/docs/de-DE/presets/gruvbox-rainbow.md b/docs/de-DE/presets/gruvbox-rainbow.md index 2d0ffec6..3bae1429 100644 --- a/docs/de-DE/presets/gruvbox-rainbow.md +++ b/docs/de-DE/presets/gruvbox-rainbow.md @@ -1,10 +1,10 @@ [Zurück zu den Voreinstellungen](./README.md#gruvbox-rainbow) -# Gruvbox Rainbow Preset +# Gruvbox Regenbogen -This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). +Diese Voreinstellung ist stark inspiriert von [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). -![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) +![Screenshot von Gruvbox Regenbogen](/presets/img/gruvbox-rainbow.png) ### Voraussetzungen diff --git a/docs/es-ES/advanced-config/README.md b/docs/es-ES/advanced-config/README.md index 5fbe8ab3..3944c29f 100644 --- a/docs/es-ES/advanced-config/README.md +++ b/docs/es-ES/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. Esto es útil en los casos en que la información del prompt no es siempre necesaria. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. Por ejemplo, para mostrar la hora en la que se inició el último comando aquí, lo harías + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Comandos pre-prompt y pre-ejecución personalizados en Cmd Clink proporciona una API extremadamente flexible para ejecutar comandos pre-prompt y pre-ejecución en la shell de Cmd. Es bastante sencillo de usar con Starship. Haz los siguientes cambios a tu archivo `starship.lua` según tus requisitos: @@ -205,7 +225,9 @@ Algunos intérpretes de comandos soportan un prompt derecho que se renderiza en Nota: El prompt derecho es una sola línea siguiendo la ubicación de entrada. Para alinear los módulos arriba de la línea de entrada en un prompt multi-línea, vea el [módulo `fill`](/config/#fill). -`right_format` está actualmente soportado para los siguientes intérpretes de comandos: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Ejemplo diff --git a/docs/es-ES/config/README.md b/docs/es-ES/config/README.md index 5439fec7..1f1f7365 100644 --- a/docs/es-ES/config/README.md +++ b/docs/es-ES/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1155,19 +1155,20 @@ The `direnv` module shows the status of the current rc file if one is present. T ### Opciones -| Opción | Predeterminado | Descripción | -| ------------------- | -------------------------------------- | ----------------------------------------------------- | -| `format` | `'[$symbol$loaded/$allowed]($style) '` | El formato del módulo. | -| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | -| `style` | `'bold orange'` | El estilo del módulo. | -| `disabled` | `true` | Disables the `direnv` module. | -| `detect_extensions` | `[]` | Qué extensiones deberían activar este módulo. | -| `detect_files` | `['.envrc']` | Qué nombres de archivo deberían activar este módulo. | -| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | -| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | -| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | -| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | -| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | +| Opción | Predeterminado | Descripción | +| ------------------- | -------------------------------------- | ----------------------------------------------------------------- | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | El formato del módulo. | +| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | +| `style` | `'bold orange'` | El estilo del módulo. | +| `disabled` | `true` | Disables the `direnv` module. | +| `detect_extensions` | `[]` | Qué extensiones deberían activar este módulo. | +| `detect_files` | `['.envrc']` | Qué nombres de archivo deberían activar este módulo. | +| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | +| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'no permitido'` | El mensaje que se muestra cuando un archivo rc no está permitido. | +| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | +| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | +| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | ### Variables @@ -3141,14 +3142,14 @@ El módulo `package` se muestra cuando el directorio actual es el repositorio de ### Opciones -| Opción | Predeterminado | Descripción | -| ---------------- | --------------------------------- | --------------------------------------------------------------------------------------- | -| `format` | `'is [$symbol$version]($style) '` | El formato del módulo. | -| `symbol` | `'📦 '` | El símbolo usado antes de mostrar la versión del paquete. | -| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | -| `style` | `'bold 208'` | El estilo del módulo. | -| `'📦 '` | `false` | Activar la visualización de la versión para los paquetes marcados como privados. | -| `disabled` | `false` | Desactiva el módulo `package`. | +| Opción | Predeterminado | Descripción | +| ----------------- | --------------------------------- | --------------------------------------------------------------------------------------- | +| `format` | `'is [$symbol$version]($style) '` | El formato del módulo. | +| `symbol` | `'📦 '` | El símbolo usado antes de mostrar la versión del paquete. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `style` | `'bold 208'` | El estilo del módulo. | +| `display_private` | `false` | Activar la visualización de la versión para los paquetes marcados como privados. | +| `disabled` | `false` | Desactiva el módulo `package`. | ### Variables diff --git a/docs/fr-FR/advanced-config/README.md b/docs/fr-FR/advanced-config/README.md index 28cfcfd9..20125095 100644 --- a/docs/fr-FR/advanced-config/README.md +++ b/docs/fr-FR/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. Par exemple, pour afficher l'heure à laquelle la dernière commande a été lancée ici, vous feriez + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Commandes pré-invite et pré-exécution personnalisées dans Cmd Clink fournit des APIs extrêmement flexibles pour exécuter des commandes pre-invite et pre-exec dans Cmd. Il est assez simple à utiliser avec Starship. Effectuez les modifications suivantes dans votre fichier `starship.lua`, en fonction de vos besoins: @@ -205,7 +225,9 @@ Certains shells peuvent gérer une invite de commande à droite, sur la même li Note: l’invite à droite est une seule ligne, sur la même ligne que l’entrée. Pour aligner à droite les modules au-dessus de la ligne d’entrée d’une invite multiligne, voir le [module `fill`](/config/#fill). -`right_format` est actuellement supporté pour les shells suivants : elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Exemple diff --git a/docs/fr-FR/config/README.md b/docs/fr-FR/config/README.md index b31a0ed1..5773f2c5 100644 --- a/docs/fr-FR/config/README.md +++ b/docs/fr-FR/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Les fichiers qui activent ce module. | | `detect_folders` | `[]` | Les dossiers qui activent ce module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/id-ID/advanced-config/README.md b/docs/id-ID/advanced-config/README.md index 0bafc8d5..098b5669 100644 --- a/docs/id-ID/advanced-config/README.md +++ b/docs/id-ID/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Kustomisasi Perintah pre-prompt dan pre-execution Pada Cmd Clink menyediakan APIs yang sangat fleksibel untuk menjalankan perintah pre-prompt dan pre-exec di Cmd shell. Caranya sangat mudah dengan Starship. Ubahlah file `starship.lua` sesuai kebutuhanmu: @@ -205,7 +225,9 @@ Sebagian shells mendukung right prompt yang mana dirender di baris yang sama ses Catatan: Right propmt merupakan sebuah baris yang mengikuti lokasi baris inputan. Untuk membuat modul rata ke kanan di atas baris masukan di dalam multi-line prompt, lihat [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Contoh diff --git a/docs/id-ID/config/README.md b/docs/id-ID/config/README.md index 7fa086e0..c0859def 100644 --- a/docs/id-ID/config/README.md +++ b/docs/id-ID/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | filenames mana yang sebaiknya memicu modul ini. | | `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/id-ID/installing/README.md b/docs/id-ID/installing/README.md index 2b8b8499..9cd40e13 100644 --- a/docs/id-ID/installing/README.md +++ b/docs/id-ID/installing/README.md @@ -1,6 +1,6 @@ # Advanced Installation -To install starship, you need to do two things: +Untuk memasang starship, ada dua hal yang perlu anda lakukan: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts diff --git a/docs/it-IT/advanced-config/README.md b/docs/it-IT/advanced-config/README.md index 223ec1d8..b920d0d1 100644 --- a/docs/it-IT/advanced-config/README.md +++ b/docs/it-IT/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Esempio diff --git a/docs/it-IT/config/README.md b/docs/it-IT/config/README.md index 420fedd5..e9ba9676 100644 --- a/docs/it-IT/config/README.md +++ b/docs/it-IT/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Quali nomi di file dovrebbero attivare questo modulo. | | `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/ja-JP/advanced-config/README.md b/docs/ja-JP/advanced-config/README.md index 77256793..f1d7c59d 100644 --- a/docs/ja-JP/advanced-config/README.md +++ b/docs/ja-JP/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. 例えば、直前のコマンドを実行した時刻を表示するには次のようにします。 + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Cmdのカスタムの事前プロンプトおよび事前実行コマンド Clinkはプロンプト表示前と実行前にCmd shellコマンドを実行するための非常に柔軟なAPIを提供します。 It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Invoke-Expression (&starship init powershell) 注意: 右プロンプトは入力の場所に続く単一の行です。 To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### 設定例 diff --git a/docs/ja-JP/config/README.md b/docs/ja-JP/config/README.md index 915a02ed..708400f8 100644 --- a/docs/ja-JP/config/README.md +++ b/docs/ja-JP/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/ko-KR/advanced-config/README.md b/docs/ko-KR/advanced-config/README.md index b18e3a05..c95445b8 100644 --- a/docs/ko-KR/advanced-config/README.md +++ b/docs/ko-KR/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Invoke-Expression (&starship init powershell) 알림: 오른쪽 프롬프트는 입력 위치에 따라 한 줄로 표시됩니다. 여러 줄 프롬프트에서 입력 선 위의 모듈을 오른쪽 정렬하려면, [`fill` 모듈](/config/#fill)을 참고하세요. -`right_format`은 현재 elvish, fish, zsh, xonsh, cmd, nushell에서 지원됩니다. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### 예시 diff --git a/docs/ko-KR/config/README.md b/docs/ko-KR/config/README.md index 4875c0e8..a79069c1 100644 --- a/docs/ko-KR/config/README.md +++ b/docs/ko-KR/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/nl-NL/advanced-config/README.md b/docs/nl-NL/advanced-config/README.md index 9dc0b4c6..2e6c8aa0 100644 --- a/docs/nl-NL/advanced-config/README.md +++ b/docs/nl-NL/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/docs/nl-NL/config/README.md b/docs/nl-NL/config/README.md index dccdabf2..1619411e 100644 --- a/docs/nl-NL/config/README.md +++ b/docs/nl-NL/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/no-NO/advanced-config/README.md b/docs/no-NO/advanced-config/README.md index 9dc0b4c6..2e6c8aa0 100644 --- a/docs/no-NO/advanced-config/README.md +++ b/docs/no-NO/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/docs/no-NO/config/README.md b/docs/no-NO/config/README.md index dccdabf2..1619411e 100644 --- a/docs/no-NO/config/README.md +++ b/docs/no-NO/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/pl-PL/advanced-config/README.md b/docs/pl-PL/advanced-config/README.md index dd5351f4..c32224cf 100644 --- a/docs/pl-PL/advanced-config/README.md +++ b/docs/pl-PL/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/docs/pl-PL/config/README.md b/docs/pl-PL/config/README.md index a39cc9bb..5d0824c4 100644 --- a/docs/pl-PL/config/README.md +++ b/docs/pl-PL/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/pt-BR/advanced-config/README.md b/docs/pt-BR/advanced-config/README.md index 25e75a32..a8b75558 100644 --- a/docs/pt-BR/advanced-config/README.md +++ b/docs/pt-BR/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt e TransientRightPrompt em Bash + +O framework [Ble.sh](https://github.com/akinomyoga/ble.sh) permite substituir o prompt anteriormente impresso por strings personalizadas. Isso é útil em casos onde nem sempre todas as informações do prompt são necessárias. Para habilitar isso, coloque em `~/.bashrc` `bleopt prompt_ps1_transient=`: + +O \ aqui é uma lista separada por dois pontos de `always`, `same-dir` e `trim`. Quando `prompt_ps1_final` está vazio e esta opção tem um valor não-vazio, o prompt especificado pelo `PS1` é apagado ao sair da linha de comando atual. Se o valor contém um campo `trim`, apenas a última linha de multilinha `PS1` é preservada e as outras linhas são apagadas. Caso contrário, a linha de comando será redesenhada como se `PS1=` fosse especificado. Quando um campo `same-dir` está contido no valor e o diretório de trabalho atual difere do diretório final da linha de comando anterior, esta opção `prompt_ps1_transient` é ignorada. + +Faça as seguintes alterações no seu `~/.bashrc` para personalizar o que é exibido à esquerda e à direita: + +- Para personalizar o que o lado esquerdo do valor de entrada é substituído, configure a opção `prompt_ps1_final` Ble.sh. Por exemplo, para exibir o caractere da `Starship` aqui, você faria + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- Para personalizar o que o lado direito de entrada é substituído, configure a opção `prompt_rps1_final` Ble.sh. Por exemplo, para exibir o momento em que o último comando foi iniciado, você faria + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Comandos personalizados de pré-prompt e pré-execução no Cmd O Clink fornece APIs extremamente flexíveis para executar comandos pré-prompt e pré-execução em Cmd shell. É bastante simples de usar com o Starship. Faça as seguintes alterações no seu arquivo `starship.lua` conforme suas necessidades: @@ -205,7 +225,9 @@ Alguns shells suportam um prompt direito que é renderizado na mesma linha que a Nota: O prompt direito é uma única linha após o local de entrada. Para alinhar módulos à direita acima da linha de entrada em um prompt de várias linhas, consulte o [módulo `fill`](/config/#fill). -`right_format` é atualmente suportado pelos seguintes shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Exemplo diff --git a/docs/pt-BR/config/README.md b/docs/pt-BR/config/README.md index c27f521a..5c13cf0f 100644 --- a/docs/pt-BR/config/README.md +++ b/docs/pt-BR/config/README.md @@ -536,16 +536,16 @@ A opção `display` é um array da seguinte tabela. #### Exemplo ```toml -[[battery.display]] # ''bold red' e discharging_symbol é exibido quando a capacidade está entre 0% e 10% +[[battery.display]] # 'bold red' style and discharging_symbol when capacity is between 0% and 10% threshold = 10 style = 'bold red' -[[battery.display]] # 'yellow' style e o símbolo 💦 é exibido quando a capacidade está entre 10% e 30% +[[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' -# quando a capacidade estiver acima de 30%, o indicador de bateria não será exibido +# when capacity is over 30%, the battery indicator will not be displayed ``` ## Buf @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Quais nomes de arquivos devem ativar este módulo. | | `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/pt-PT/advanced-config/README.md b/docs/pt-PT/advanced-config/README.md index 9dc0b4c6..2e6c8aa0 100644 --- a/docs/pt-PT/advanced-config/README.md +++ b/docs/pt-PT/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/docs/pt-PT/config/README.md b/docs/pt-PT/config/README.md index dccdabf2..1619411e 100644 --- a/docs/pt-PT/config/README.md +++ b/docs/pt-PT/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/ru-RU/advanced-config/README.md b/docs/ru-RU/advanced-config/README.md index 005fff03..33c25f81 100644 --- a/docs/ru-RU/advanced-config/README.md +++ b/docs/ru-RU/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Пример diff --git a/docs/ru-RU/config/README.md b/docs/ru-RU/config/README.md index 5aeb02e1..196a4989 100644 --- a/docs/ru-RU/config/README.md +++ b/docs/ru-RU/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/ru-RU/faq/README.md b/docs/ru-RU/faq/README.md index 6fe2f96c..d030c244 100644 --- a/docs/ru-RU/faq/README.md +++ b/docs/ru-RU/faq/README.md @@ -10,9 +10,9 @@ - **Конфигурация**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish) - **Подсказка**: [Starship](https://starship.rs/) -## How do I get command completion as shown in the demo GIF? +## Как мне получить автодополнение команд, как показано на демонстрационной GIF? -Completion support, or autocomplete, is provided by your shell of choice. In the case of the demo, the demo was done with [Fish Shell](https://fishshell.com/), which provides completions by default. If you use Z Shell (zsh), I'd suggest taking a look at [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions). +Автодополнение команд обеспечивается выбранной вами оболочкой. В данном случае, демо было выполнено с [Fish Shell](https://fishshell.com/), которая обеспечивает дополнения по умолчанию. Если вы используете Z Shell (zsh), я бы посоветовал взглянуть на [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions). ## Do top level `format` and `.disabled` do the same thing? @@ -21,7 +21,7 @@ Completion support, or autocomplete, is provided by your shell of choice. In the - Disabling modules is more explicit than omitting them from the top level `format` - Новосозданные модули будут добавлены в подсказку по мере обновления Starship -## The docs say Starship is cross-shell. Why isn't my preferred shell supported? +## Доки говорят, что Starship поддерживается на всех оболочках *(cross-shell)*. Почему моя любимая оболочка не поддерживается? Starship устроен так, что есть возможность добавить поддержку практически любой оболочки. Бинарный файл Starship не зависит от оболочки и не имеет состояния, так что если ваша оболочка поддерживает расширение подстрок и настройку подсказки, то Starship может быть использован. @@ -56,15 +56,15 @@ starship prompt --help curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ``` -## Why do I see `Executing command "..." timed out.` warnings? +## Почему я вижу предупреждение `Executing command "..." timed out.`? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship выполняет различные команды, чтобы получить информацию, отображаемую в промпте, например версию программы или текущий git status. Чтобы быть уверенными, что starship не зависнет во время выполнения этих команд, мы поставили лимит времени, и если команда выполняется дольше лимита, starship прекратит её выполнение и выведет это предупреждение, это нормальное поведение. Временной лимит можно изменить с помощью опции [`command_timeout`key](/config/#prompt), поэтому при желании вы можете увеличить это время. Вы так же можете следовать шагам для отладки ниже, чтобы понять, какая команда влияет на время и ускорить промпт. Наконец, вы можете изменить переменную окружения `STARSHIP_LOG` `error`, чтобы спрятать это предупреждение. -## I see symbols I don't understand or expect, what do they mean? +## Я вижу символы, которые я не понимаю или не ожидаю, что они означают? -If you see symbols that you don't recognise you can use `starship explain` to explain the currently showing modules. +Если вы видите символы, которые вы не узнаете, вы можете использовать команду `starship explain`, чтобы разъяснить показываемые модули. -## Starship is doing something unexpected, how can I debug it? +## Starship делает что-то неожиданное, как я могу отладить его? You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs can be very verbose so it is often useful to use the `module` command if you are trying to debug a particular module, for example, if you are trying to debug the `rust` module you could run the following command to get the trace logs and output from the module. @@ -86,24 +86,24 @@ Finally if you find a bug you can use the `bug-report` command to create a GitHu starship bug-report ``` -## Why don't I see a glyph symbol in my prompt? +## Почему я не вижу символ в промпте? -The most common cause of this is system misconfiguration. Some Linux distros in particular do not come with font support out-of-the-box. You need to ensure that: +Наиболее распространенной причиной этого является неправильная конфигурация системы. В частности, некоторые Linux дистрибутивы не предоставляют поддержку шрифта из коробки. Необходимо убедиться, что: - Your locale is set to a UTF-8 value, like `de_DE.UTF-8` or `ja_JP.UTF-8`. If `LC_ALL` is not a UTF-8 value, [you will need to change it](https://www.tecmint.com/set-system-locales-in-linux/). - You have an emoji font installed. Most systems come with an emoji font by default, but some (notably Arch Linux) do not. You can usually install one through your system's package manager--[noto emoji](https://www.google.com/get/noto/help/emoji/) is a popular choice. -- You are using a [Nerd Font](https://www.nerdfonts.com/). +- Вы используете [Nerd Font](https://www.nerdfonts.com/). -To test your system, run the following commands in a terminal: +Для тестирования системы запустите следующие команды в терминале: ```sh echo -e "\xf0\x9f\x90\x8d" echo -e "\xee\x82\xa0" ``` -The first line should produce a [snake emoji](https://emojipedia.org/snake/), while the second should produce a [powerline branch symbol (e0a0)](https://github.com/ryanoasis/powerline-extra-symbols#glyphs). +Первая строка должна создать [эмоджи змеи](https://emojipedia.org/snake/), а вторая - символ ветки [(e0a0)](https://github.com/ryanoasis/powerline-extra-symbols#glyphs). -If either symbol fails to display correctly, your system is still misconfigured. Unfortunately, getting font configuration correct is sometimes difficult. Users on the Discord may be able to help. If both symbols display correctly, but you still don't see them in starship, [file a bug report!](https://github.com/starship/starship/issues/new/choose) +Если любой из символов не отображается корректно, ваша система все еще неправильно настроена. К сожалению, иногда сложно получить правильную конфигурацию шрифта. Пользователи в Discord могут помочь. Если оба символа отображаются верно, но вы всё ещё не видите их в starship, [отправьте bug report!](https://github.com/starship/starship/issues/new/choose) ## Как удалить Starship? @@ -121,10 +121,10 @@ If Starship was installed using the install script, the following command will d sh -c 'rm "$(command -v 'starship')"' ``` -## How do I install Starship without `sudo`? +## Как Starship без `sudo`? -The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. +Скрипт установки (`https://starship.rs/install. h`) использует `sudo` только если директория установки недоступна для записи текущим пользователем. Директория установки по умолчанию это значение переменной окружения `$BIN_DIR` или `/usr/local/bin`, если `$BIN_DIR` не установлен. Если вместо этого выбрать директорию установки, которая доступна для записи пользователем, вы можете установить starship без `sudo`. Например, в `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` флаг `-b` установочного скрипта используется, чтобы задать директорию установки на `~/.local/bin`. -For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. +Для неинтерактивной установки Starship не забудьте добавить опцию `-y` чтобы пропустить подтверждение. Проверьте исходник установочного скрипта, чтобы получить список всех поддерживаемых параметров установки. -When using a package manager, see the documentation for your package manager about installing with or without `sudo`. +При через пакетный менеджер, смотрите документацию для вашего пакетного менеджера об установке с `sudo` и без. diff --git a/docs/ru-RU/guide/README.md b/docs/ru-RU/guide/README.md index 5795e781..66a2794e 100644 --- a/docs/ru-RU/guide/README.md +++ b/docs/ru-RU/guide/README.md @@ -180,18 +180,18 @@ ### Обязательные требования -- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)). +- Установленный и включенный в вашем терминале [Nerd Font](https://www.nerdfonts.com/) (например, попробуйте [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)). ### Шаг 1. Установите Starship -Select your operating system from the list below to view installation instructions: +Выберите вашу операционную систему из списка ниже для просмотра инструкций по установке:
Android -Install Starship using any of the following package managers: +Установите Starship с помощью любого из следующих менеджеров пакетов: -| Repository | Instructions | +| Репозиторий | Команда | | --------------------------------------------------------------------------------- | ---------------------- | | [Termux](https://github.com/termux/termux-packages/tree/master/packages/starship) | `pkg install starship` | @@ -200,32 +200,32 @@ Install Starship using any of the following package managers:
BSD -Install Starship using any of the following package managers: +Установите Starship с помощью любого из следующих менеджеров пакетов: -| Distribution | Repository | Instructions | -| ------------ | -------------------------------------------------------- | --------------------------------- | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | -| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` | +| Дистрибутив | Репозиторий | Команда | +| ----------- | -------------------------------------------------------- | --------------------------------- | +| **_Любой_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | +| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` |
Linux -Install the latest version for your system: +Установите последнюю версию для вашей системы: ```sh curl -sS https://starship.rs/install.sh | sh ``` -Alternatively, install Starship using any of the following package managers: +Или же установите Starship с помощью любого из следующих пакетных менеджеров: -| Distribution | Repository | Instructions | +| Дистрибутив | Репозиторий | Команда | | ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| _Any_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | -| _Any_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | +| **_Любой_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| _Любой_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| _Любой_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | | Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | | Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | | CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
`dnf install starship` | @@ -240,15 +240,15 @@ Alternatively, install Starship using any of the following package managers:
macOS -Install the latest version for your system: +Установите последнюю версию для вашей системы: ```sh curl -sS https://starship.rs/install.sh | sh ``` -Alternatively, install Starship using any of the following package managers: +Или же установите Starship с помощью любого из следующих пакетных менеджеров: -| Repository | Instructions | +| Репозиторий | Команда | | -------------------------------------------------------- | --------------------------------------- | | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | @@ -262,9 +262,9 @@ Alternatively, install Starship using any of the following package managers: Install the latest version for your system with the MSI-installers from the [releases section](https://github.com/starship/starship/releases/latest). -Install Starship using any of the following package managers: +Установите Starship с помощью любого из следующих менеджеров пакетов: -| Repository | Instructions | +| Репозиторий | Команда | | -------------------------------------------------------------------------------------------- | --------------------------------------- | | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | | [Chocolatey](https://community.chocolatey.org/packages/starship) | `choco install starship` | @@ -274,9 +274,9 @@ Install Starship using any of the following package managers:
-### Шаг 2. Set up your shell to use Starship +### Шаг 2. Настройте оболочку для использования Starship -Configure your shell to initialize starship. Select yours from the list below: +Настройте оболочку для инициализации starship. Выберете вашу оболочку из списка:
Bash @@ -292,7 +292,7 @@ eval "$(starship init bash)"
Cmd -You need to use [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) with Cmd. Create a file at this path `%LocalAppData%\clink\starship.lua` with the following contents: +Вам нужно использовать [Clink](https://chrisant996.github.io/clink/clink.html) (v1.2.30+) с Cmd. Создайте файл по этому пути `%LocalAppData%\clink\starship.lua` со следующим содержанием: ```lua load(io.popen('starship init cmd'):read("*a"))() @@ -309,7 +309,7 @@ load(io.popen('starship init cmd'):read("*a"))() eval (starship init elvish) ``` -Note: Only Elvish v0.18+ is supported +Примечание: поддерживается только Elvish v0.18+
@@ -399,15 +399,15 @@ eval "$(starship init zsh)"
-### Шаг 3. Configure Starship +### Шаг 3. Настройте Starship -Start a new shell instance, and you should see your beautiful new shell prompt. If you're happy with the defaults, enjoy! +Запустите новую сессию оболочки, и вы увидите ваш новый прекрасный промпт. Если вы довольны с настройками по умолчанию, наслаждайтесь! -If you're looking to further customize Starship: +Если вы хотите детальнее настроить Starship: -- **[Configuration](https://starship.rs/config/)** – learn how to configure Starship to tweak your prompt to your liking +- **[Конфигурация](https://starship.rs/config/)** – узнайте, как настраивать Starship, чтобы подкорректировать промпт на ваш вкус -- **[Presets](https://starship.rs/presets/)** – get inspired by the pre-built configuration of others +- **[Пресеты](https://starship.rs/presets/)** – вдохновиться готовой конфигурацией других ## 🤝 Помощь @@ -421,15 +421,15 @@ If you're looking to further customize Starship: Пожалуйста, ознакомьтесь с этими предыдущими работами, которые помогли вдохновить создание Starship. 🙏 -- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – A ZSH prompt for astronauts. +- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – ZSH промпт для космонавтов. - **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-shell robbyrussell theme written in JavaScript. - **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons. -## ❤️ Sponsors +## ❤️ Спонсоры -Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. +Поддержите этот проект, [став спонсором](https://github.com/sponsors/starship). Ваше имя или логотип будут отображаться здесь со ссылкой на ваш сайт. **Supporter Tier** diff --git a/docs/ru-RU/installing/README.md b/docs/ru-RU/installing/README.md index 25615b14..3c5aeaa5 100644 --- a/docs/ru-RU/installing/README.md +++ b/docs/ru-RU/installing/README.md @@ -1,4 +1,4 @@ -# Advanced Installation +# Продвинутая установка To install starship, you need to do two things: diff --git a/docs/tr-TR/advanced-config/README.md b/docs/tr-TR/advanced-config/README.md index c874aab1..698071fd 100644 --- a/docs/tr-TR/advanced-config/README.md +++ b/docs/tr-TR/advanced-config/README.md @@ -81,6 +81,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Example diff --git a/docs/tr-TR/config/README.md b/docs/tr-TR/config/README.md index 6c01d99b..a0223f27 100644 --- a/docs/tr-TR/config/README.md +++ b/docs/tr-TR/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/uk-UA/advanced-config/README.md b/docs/uk-UA/advanced-config/README.md index 00762752..457c68f3 100644 --- a/docs/uk-UA/advanced-config/README.md +++ b/docs/uk-UA/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt та TransientRightPrompt в Bash + +[Ble.sh](https://github.com/akinomyoga/ble.sh) дозволяє замінювати попередньо надрукований командний рядок іншим рядком. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Для увімкнення цього додайте до `~/.bashrc` рядок `bleopt prompt_ps1_transient=`: + +\ тут  – це розділений двокрапкою список `always`, `same-dir` та `trim`. Якщо `prompt_ps1_final` порожній і цей параметр має не пусте значення, командний рядок, вказаний у `PS1` буде стертий при виході з поточного командного рядка. Якщо значення містить поле `trim`, тільки останній рядок багаторядкового `PS1` буде збережений, а інші вилучені. В іншому випадку командний рядок буде встановлено перестворено, якщо вказано `PS1=`. Коли поле `same-dir` міститься у значені та поточна тека є відмінною від останньої теки у попередньому виводі командного рядка, параметр `prompt_ps1_transient` не враховується. + +Зробіть наступні зміни у `~/.bashrc`, щоб налаштувати, що показується ліворуч і праворуч: + +- Для налаштування того, чим замінюється ліва частина вводу, налаштуйте параметр `prompt_ps1_final`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- Для налаштування того, чим замінюється права частина вводу, налаштуйте параметр `prompt_rps1_final`. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Власні команди pre-prompt та pre-execution в Cmd Clink забезпечує надзвичайно гнучкий API для виконання команд pre-prompt і pre-exec в Cmd. Його досить просто використовувати в Starship. Зробіть наступні зміни у вашому `starship.lua` відповідно до ваших вимог: @@ -205,7 +225,9 @@ Invoke-Expression (&starship init powershell) Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте модуль [`fill`](/config/#fill). -`right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Примітка: фреймворк [Ble.sh](https://github.com/akinomyoga/ble.sh) має бути встановлений для того, щоб використовувати розташування командного рядка в bash праворуч. ### Приклад diff --git a/docs/uk-UA/config/README.md b/docs/uk-UA/config/README.md index 179a76ee..0d965192 100644 --- a/docs/uk-UA/config/README.md +++ b/docs/uk-UA/config/README.md @@ -1165,6 +1165,7 @@ truncation_symbol = '…/' | `detect_files` | `['.envrc']` | Які імена файлів мають запускати цей модуль. | | `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | | `allowed_msg` | `'allowed'` | Повідомлення, що показується коли використання rc-файлу дозволене. | +| `not_allowed_msg` | `'not allowed'` | Повідомлення, що показується коли використання rc-файлу заборонене. | | `denied_msg` | `'denied'` | Повідомлення, що показується коли використання rc-файлу заборонене. | | `loaded_msg` | `'loaded'` | Повідомлення, що показується коли rc-файл завантажений. | | `unloaded_msg` | `'not loaded'` | Повідомлення, що показується коли rc-файл не завантажений. | diff --git a/docs/uk-UA/faq/README.md b/docs/uk-UA/faq/README.md index afdb13d6..d3b3d41f 100644 --- a/docs/uk-UA/faq/README.md +++ b/docs/uk-UA/faq/README.md @@ -121,10 +121,10 @@ Starship так само легко видалити, як і встановит sh -c 'rm "$(command -v 'starship')"' ``` -## How do I install Starship without `sudo`? +## Як встановити Starship без `sudo`? -The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. +Скрипт для встановлення оболонки (`https://starship.rs/install.sh`) намагається використовувати `sudo` лише в тому випадку, якщо поточний користувач не може писати в цільову теку. Стандартна тека для встановлення – є значенням змінної `$BIN_DIR` або це `/usr/local/bin`, якщо змінну `$BIN_DIR` не встановлено. Якщо замісць стандартної теки вказати теку, в яку ви можете писати, starship можна встановити без використання `sudo`. Наприклад, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` використовує параметр `-b` для встановлення в теку`~/.local/bin`. -For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. +Якщо ви хочете виконати встановлення в повністю автоматичному режимі, не перериваючись на підтвердження в процесі, додайте параметр `-y`. Перегляньте сирці скрипту встановлення для ознайомлення зі всіма можливими параметрами. -When using a package manager, see the documentation for your package manager about installing with or without `sudo`. +У разі використання пакетного менеджера, ознайомтесь з документацією до нього що до можливості встановлення з застосуванням, чи без, `sudo`. diff --git a/docs/vi-VN/advanced-config/README.md b/docs/vi-VN/advanced-config/README.md index e4d0e527..c7f3c956 100644 --- a/docs/vi-VN/advanced-config/README.md +++ b/docs/vi-VN/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### Ví dụ diff --git a/docs/vi-VN/config/README.md b/docs/vi-VN/config/README.md index 72769990..c8e5113b 100644 --- a/docs/vi-VN/config/README.md +++ b/docs/vi-VN/config/README.md @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -1165,6 +1165,7 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Những tên tệp nào sẽ kích hoạt mô-đun này. | | `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 316497e0..4ce164ea 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -2,23 +2,23 @@ home: true heroImage: /logo.svg heroText: -tagline: 轻量、迅速、可无限定制的高颜值终端! +tagline: 轻量、迅速、客制化的高颜值终端! actionText: 快速上手 → actionLink: ./guide/ features: - title: 兼容性优先 - details: Starship 可以在各种常见的操作系统和常见的 shell 上运行。 尝试着在各种地方使用它吧! + details: Starship 可以在常见的操作系统和 shell 上运行。 尝试着在各种地方使用它吧! - - title: 使用 Rust 编写 - details: 具有 Rust 独树一帜的速度与安全性,使你的提示符尽可能的快速可靠。 + title: 基于 Rust + details: Rust 特有的的速度与安全性,让你的提示尽可能的快速可靠。 - - title: 可自定义 - details: 每个小细节都可以按您喜欢的自定义,不论是最小化以求速度,还是最大化以获得最完善的功能。 -footer: ISC 许可 | 版权所有 © 2019 - 目前 Starship 贡献者 + title: 客制化 + details: 每个小细节都可以按您喜欢的客制化,不论是最小化以求速度,还是更大以获得最完善的功能。 +footer: ISC 许可 | 版权所有 © 2019至今 - Starship 贡献者 #Used for the description meta tag, for SEO metaTitle: "Starship:可用于各种 Shell 的提示符" -description: Starship是一款轻量级、反应迅速、可自定义的高颜值终端! 只显示所需要的信息,将优雅和轻量化合二为一。 可以为Bash、Fish、ZSH、Ion、Tcsh、Elvish、Nu、Xonsh、Cmd和PowerShell执行快速安装。 +description: Starship是一款轻量、迅速、可客制化的高颜值终端! 只显示所需要的信息,将优雅和轻量化合二为一。 可以为Bash、Fish、ZSH、Ion、Tcsh、Elvish、Nu、Xonsh、Cmd和PowerShell执行快速安装。 ---
@@ -162,7 +162,7 @@ description: Starship是一款轻量级、反应迅速、可自定义的高颜 然后在您的 Nushell 配置文件的最后(使用 `$nu.config-path` 来获取它的路径),添加以下内容: ```sh - 使用 ~/.cache/starship/init.nu + use ~/.cache/starship/init.nu ``` diff --git a/docs/zh-CN/advanced-config/README.md b/docs/zh-CN/advanced-config/README.md index 0ef535d6..e4afa3ff 100644 --- a/docs/zh-CN/advanced-config/README.md +++ b/docs/zh-CN/advanced-config/README.md @@ -58,9 +58,9 @@ load(io.popen('starship init cmd'):read("*a"))() 可以用自定义字符串替换预设的命令行提示。 这在不经常需要所有提示信息的情况下很有用。 若要启用该功能,请在 shell 中运行 `Enable-TransitientPrompt`命令 若要永久启用该功能,请将 上述语句放在您的 `~/.config/fish/config.fish` 中。 通过在shell中运行 `Disable-TransientPrompt`命令来禁用这项功能。 -请注意,对于Fish,命令行提示只在命令行非空 和语法正确的情况下才会显示。 +请注意,对于Fish,命令行提示只在命令行非空 且语法正确的情况下才会显示。 -- 默认情况下,输入的左侧是 粗体绿色的❯符号。 要自定义它,请定义一个新函数,名为 `Invoke-Starship-TransitentFunction`。 例如,要 在这里显示Starship的 `character` 模块,您需要如下操作: +- 默认情况下,输入的左侧是 粗体绿色的`❯`符号。 要自定义它,请定义一个新函数,名为 `Invoke-Starship-TransitentFunction`。 例如,要在这里显示 Starship 的 `character` 组件,您需要如下操作: ```fish function starship_transent_rmpt_func @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. 例如,要在这里显示 最后一个命令开始的时间,您需要如下操作: + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## 在 Cmd 中自定义提示符显示前和执行前的命令 Clink 提供了很灵活的 API,能在 Cmd shell 中运行预提示和执行前命令。 在 Starship 中使用这些 API 很容易。 对你的 `starship.lua` 按需做出如下修改: @@ -205,7 +225,9 @@ Invoke-Expression (&starship init powershell) 注意:右侧提示和输入区显示在同一行。 如果需要在输入区的上方显示右对齐的组件,请查阅 [`fill` 组件](/config/#fill)。 -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### 示例 diff --git a/docs/zh-CN/config/README.md b/docs/zh-CN/config/README.md index b41d3714..ceb6bc6f 100644 --- a/docs/zh-CN/config/README.md +++ b/docs/zh-CN/config/README.md @@ -1,6 +1,6 @@ # 配置 -请为 Starship 创建配置文件 `~/.config/starship.toml`。 +为 Starship 创建配置文件 `~/.config/starship.toml`。 ```sh mkdir -p ~/.config && touch ~/.config/starship.toml @@ -16,8 +16,8 @@ Starship 的所有配置都在此 [TOML](https://github.com/toml-lang/toml) 文 add_newline = true # 将提示符中的 '❯' 替换为 '➜' -[character] # 此模块名称为 'character' -success_symbol = '[➜](bold green)' # 将 'success_symbol' 片段设置成颜色为 'bold green' 的 '➜' +[character] # 此组件名称为 'character' +success_symbol = '[➜](bold green)' # 将 'success_symbol' 字段设置成颜色为 'bold green' 的 '➜' # 禁用 'package' 组件,将其隐藏 [package] @@ -46,7 +46,7 @@ os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\star ### 日志 -默认情况下,Starship 会将警告和错误日志记录到文件 `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`. 其中 session key 与您的终端实例相对应。 不过,这也可以使用 `STARSHIP_CACHE` 环境变量来修改: +默认情况下,Starship 会将警告和错误日志记录到文件 `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`. 其中 session key 与您的终端实例相对应。 不过,也可以使用 `STARSHIP_CACHE` 环境变量来修改: ```sh export STARSHIP_CACHE=~/.starship/cache @@ -210,7 +210,7 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] ::: tip -If you have symlinks to networked filesystems, consider setting `follow_symlinks` to `false`. +如果你有链接至网络文件系统的符号链接, 建议设置 `follow_symlinks` 为 `false` ::: @@ -340,7 +340,7 @@ $shell\ $character""" ``` -如果你只是想扩展默认的格式,你可以使用 `$all`; 你另外添加到格式中的modules不会重复出现。 例如: +如果你只是想扩展默认的格式,你可以使用 `$all`; 你另外添加到格式中的组件不会重复出现。 例如: ```toml # Move the directory to the second line @@ -388,7 +388,7 @@ When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile *: 此变量只能作为样式字符串的一部分使用 -### Examples +### 示例 #### Display everything @@ -442,12 +442,12 @@ The `azure` module shows the current Azure Subscription. This is based on showin | 字段 | 默认值 | 描述 | | ---------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------- | | `format` | `'on [$symbol($subscription)]($style) '` | The format for the Azure module to render. | -| `符号` | `'󰠅 '` | The symbol used in the format. | +| `符号` | `'󰠅 '` | 格式中使用的符号 | | `style` | `'blue bold'` | The style used in the format. | -| `disabled` | `true` | Disables the `azure` module. | +| `disabled` | `true` | 禁用 `azure` 组件。 | | `subscription_aliases` | `{}` | Table of subscription name aliases to display in addition to Azure subscription name. | -### Examples +### 示例 #### Display Subscription Name @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -560,10 +560,10 @@ The `buf` module shows the currently installed version of [Buf](https://buf.buil | 选项 | 默认值 | 描述 | | ------------------- | ----------------------------------------------- | ----------------------------------------------------- | | `format` | `'with [$symbol($version )]($style)'` | The format for the `buf` module. | -| `version_format` | `'v${raw}'` | The version format. | +| `version_format` | `'v${raw}'` | 版本格式 | | `符号` | `'🐃 '` | The symbol used before displaying the version of Buf. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | -| `detect_files` | `['buf.yaml', 'buf.gen.yaml', 'buf.work.yaml']` | Which filenames should trigger this module. | +| `detect_files` | `['buf.yaml', 'buf.gen.yaml', 'buf.work.yaml']` | 哪些文件应触发此组件 | | `detect_folders` | `[]` | Which folders should trigger this modules. | | `style` | `'bold blue'` | 此组件的样式。 | | `disabled` | `false` | Disables the `elixir` module. | @@ -596,24 +596,24 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🍞 '` | A format string representing the symbol of Bun. | -| `detect_extensions` | `[]` | Which extensions should trigger this module. | -| `detect_files` | `['bun.lockb', 'bunfig.toml']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold red'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `bun` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | -------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `symbol` | `'🍞 '` | 用于表示Bun的格式化字符串 | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['bun.lockb', 'bunfig.toml']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'bold red'` | 此组件的样式。 | +| `disabled` | `false` | 禁用`bun`组件 | ### 变量 -| 字段 | 示例 | 描述 | -| --------- | -------- | -------------------- | -| version | `v0.1.4` | The version of `bun` | -| 符号 | | `symbol`对应值 | -| style\* | | `style`对应值 | +| 字段 | 示例 | 描述 | +| --------- | -------- | ----------- | +| version | `v0.1.4` | `bun` 版本 | +| symbol | | `symbol`对应值 | +| style\* | | `style`对应值 | *: 此变量只能作为样式字符串的一部分使用 @@ -632,17 +632,17 @@ The `c` module shows some information about your C compiler. By default the modu ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'C '` | The symbol used before displaying the compiler details | -| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | -| `style` | `'bold 149'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `c` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------ | +| `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'C '` | The symbol used before displaying the compiler details | +| `detect_extensions` | `['c', 'h']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `commands` | `[ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ]` | How to detect what the compiler is | +| `style` | `'bold 149'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `c` module. | ### 变量 @@ -708,7 +708,7 @@ By default it only changes color. If you also want to change its shape take a lo | -- | -- | -------------------------------------------------------------------------------------------------------- | | 符号 | | A mirror of either `success_symbol`, `error_symbol`, `vimcmd_symbol` or `vimcmd_replace_one_symbol` etc. | -### Examples +### 示例 #### With custom error shape @@ -748,16 +748,16 @@ The `cmake` module shows the currently installed version of [CMake](https://cmak ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | -------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'△ '` | The symbol used before the version of cmake. | -| `detect_extensions` | `[]` | Which extensions should trigger this module | -| `detect_files` | `['CMakeLists.txt', 'CMakeCache.txt']` | Which filenames should trigger this module | -| `detect_folders` | `[]` | Which folders should trigger this module | -| `style` | `'bold blue'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `cmake` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | -------------------------------------- | -------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'△ '` | The symbol used before the version of cmake. | +| `detect_extensions` | `[]` | Which extensions should trigger this module | +| `detect_files` | `['CMakeLists.txt', 'CMakeCache.txt']` | Which filenames should trigger this module | +| `detect_folders` | `[]` | Which folders should trigger this module | +| `style` | `'bold blue'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `cmake` module. | ### 变量 @@ -778,16 +778,16 @@ The `cobol` module shows the currently installed version of COBOL. By default, t ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `符号` | `'⚙️ '` | The symbol used before displaying the version of COBOL. | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `style` | `'bold blue'` | 此组件的样式。 | -| `detect_extensions` | `['cbl', 'cob', 'CBL', 'COB']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `disabled` | `false` | Disables the `cobol` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ------------------------------------------------------- | +| `符号` | `'⚙️ '` | The symbol used before displaying the version of COBOL. | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `style` | `'bold blue'` | 此组件的样式。 | +| `detect_extensions` | `['cbl', 'cob', 'CBL', 'COB']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `disabled` | `false` | Disables the `cobol` module. | ### 变量 @@ -924,16 +924,16 @@ The `crystal` module shows the currently installed version of [Crystal](https:// ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `符号` | `'🔮 '` | The symbol used before displaying the version of crystal. | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `style` | `'bold red'` | 此组件的样式。 | -| `detect_extensions` | `['cr']` | Which extensions should trigger this module. | -| `detect_files` | `['shard.yml']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `disabled` | `false` | Disables the `crystal` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | --------------------------------------------------------- | +| `符号` | `'🔮 '` | The symbol used before displaying the version of crystal. | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `style` | `'bold red'` | 此组件的样式。 | +| `detect_extensions` | `['cr']` | Which extensions should trigger this module. | +| `detect_files` | `['shard.yml']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `disabled` | `false` | Disables the `crystal` module. | ### 变量 @@ -962,16 +962,16 @@ The `daml` module shows the currently used [Daml](https://www.digitalasset.com/d ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'Λ '` | A format string representing the symbol of Daml | -| `style` | `'bold cyan'` | 此组件的样式。 | -| `detect_extensions` | `[]` | Which extensions should trigger this module. | -| `detect_files` | `['daml.yaml']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `disabled` | `false` | Disables the `daml` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ----------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'Λ '` | A format string representing the symbol of Daml | +| `style` | `'bold cyan'` | 此组件的样式。 | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['daml.yaml']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `disabled` | `false` | Disables the `daml` module. | ### 变量 @@ -1002,16 +1002,16 @@ The `dart` module shows the currently installed version of [Dart](https://dart.d ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🎯 '` | A format string representing the symbol of Dart | -| `detect_extensions` | `['dart']` | Which extensions should trigger this module. | -| `detect_files` | `['pubspec.yaml', 'pubspec.yml', 'pubspec.lock']` | Which filenames should trigger this module. | -| `detect_folders` | `['.dart_tool']` | Which folders should trigger this module. | -| `style` | `'bold blue'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `dart` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------------------- | ----------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'🎯 '` | A format string representing the symbol of Dart | +| `detect_extensions` | `['dart']` | Which extensions should trigger this module. | +| `detect_files` | `['pubspec.yaml', 'pubspec.yml', 'pubspec.lock']` | 哪些文件应触发此组件 | +| `detect_folders` | `['.dart_tool']` | 那些文件夹应该触发此组件 | +| `style` | `'bold blue'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `dart` module. | ### 变量 @@ -1040,16 +1040,16 @@ The `deno` module shows you your currently installed version of [Deno](https://d ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🦕 '` | A format string representing the symbol of Deno | -| `detect_extensions` | `[]` | Which extensions should trigger this module. | -| `detect_files` | `['deno.json', 'deno.jsonc', 'mod.ts', 'mod.js', 'deps.ts', 'deps.js']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'green bold'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `deno` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ----------------------------------------------------------------------- | ----------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'🦕 '` | A format string representing the symbol of Deno | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['deno.json', 'deno.jsonc', 'mod.ts', 'mod.js', 'deps.ts', 'deps.js']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'green bold'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `deno` module. | ### 变量 @@ -1162,9 +1162,10 @@ The `direnv` module shows the status of the current rc file if one is present. T | `style` | `'bold orange'` | 此组件的样式。 | | `disabled` | `true` | Disables the `direnv` module. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | -| `detect_files` | `['.envrc']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | +| `detect_files` | `['.envrc']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | @@ -1249,17 +1250,17 @@ The module will also show the Target Framework Moniker ( '` | The symbol used before displaying the version of PureScript. | -| `detect_extensions` | `['purs']` | Which extensions should trigger this module. | -| `detect_files` | `['spago.dhall']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold white'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `purescript` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ------------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'<=> '` | The symbol used before displaying the version of PureScript. | +| `detect_extensions` | `['purs']` | Which extensions should trigger this module. | +| `detect_files` | `['spago.dhall']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'bold white'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `purescript` module. | ### 变量 @@ -3372,7 +3373,7 @@ By default the module will be shown if any of the following conditions are met: | 选项 | 默认值 | 描述 | | -------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | | `format` | `'via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | | `符号` | `'🐍 '` | 用于表示Python的格式化字符串。 | | `style` | `'yellow bold'` | 此组件的样式。 | | `pyenv_version_name` | `false` | 使用 pyenv 获取 Python 版本 | @@ -3452,16 +3453,16 @@ The `rlang` module shows the currently installed version of [R](https://www.r-pr ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'📐'` | A format string representing the symbol of R. | -| `style` | `'blue bold'` | 此组件的样式。 | -| `detect_extensions` | `['R', 'Rd', 'Rmd', 'Rproj', 'Rsx']` | Which extensions should trigger this module | -| `detect_files` | `['.Rprofile']` | Which filenames should trigger this module | -| `detect_folders` | `['.Rproj.user']` | Which folders should trigger this module | -| `disabled` | `false` | Disables the `r` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | --------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'📐'` | A format string representing the symbol of R. | +| `style` | `'blue bold'` | 此组件的样式。 | +| `detect_extensions` | `['R', 'Rd', 'Rmd', 'Rproj', 'Rsx']` | Which extensions should trigger this module | +| `detect_files` | `['.Rprofile']` | Which filenames should trigger this module | +| `detect_folders` | `['.Rproj.user']` | Which folders should trigger this module | +| `disabled` | `false` | Disables the `r` module. | ### 变量 @@ -3489,16 +3490,16 @@ The `raku` module shows the currently installed version of [Raku](https://www.ra ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version-$vm_version )]($style)'` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🦋 '` | The symbol used before displaying the version of Raku | -| `detect_extensions` | `['p6', 'pm6', 'pod6', 'raku', 'rakumod']` | Which extensions should trigger this module. | -| `detect_files` | `['META6.json']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold 149'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `raku` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------------------ | ----------------------------------------------------- | +| `format` | `'via [$symbol($version-$vm_version )]($style)'` | The format string for the module. | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'🦋 '` | The symbol used before displaying the version of Raku | +| `detect_extensions` | `['p6', 'pm6', 'pod6', 'raku', 'rakumod']` | Which extensions should trigger this module. | +| `detect_files` | `['META6.json']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'bold 149'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `raku` module. | ### 变量 @@ -3526,16 +3527,16 @@ By default the `red` module shows the currently installed version of [Red](https ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🔺 '` | A format string representing the symbol of Red. | -| `detect_extensions` | `['red']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'red bold'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `red` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ----------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'🔺 '` | A format string representing the symbol of Red. | +| `detect_extensions` | `['red']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'red bold'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `red` module. | ### 变量 @@ -3569,17 +3570,17 @@ Starship gets the current Ruby version by running `ruby -v`. ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'💎 '` | A format string representing the symbol of Ruby. | -| `detect_extensions` | `['rb']` | Which extensions should trigger this module. | -| `detect_files` | `['Gemfile', '.ruby-version']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `detect_variables` | `['RUBY_VERSION', 'RBENV_VERSION']` | Which environment variables should trigger this module. | -| `style` | `'bold red'` | 此组件的样式。 | -| `disabled` | `false` | 禁用 `ruby` 组件。 | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'💎 '` | A format string representing the symbol of Ruby. | +| `detect_extensions` | `['rb']` | Which extensions should trigger this module. | +| `detect_files` | `['Gemfile', '.ruby-version']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `detect_variables` | `['RUBY_VERSION', 'RBENV_VERSION']` | Which environment variables should trigger this module. | +| `style` | `'bold red'` | 此组件的样式。 | +| `disabled` | `false` | 禁用 `ruby` 组件。 | ### 变量 @@ -3609,16 +3610,16 @@ By default the `rust` module shows the currently installed version of [Rust](htt ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🦀 '` | A format string representing the symbol of Rust | -| `detect_extensions` | `['rs']` | Which extensions should trigger this module. | -| `detect_files` | `['Cargo.toml']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold red'` | 此组件的样式。 | -| `disabled` | `false` | 禁用 `rust` 组件。 | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ----------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'🦀 '` | A format string representing the symbol of Rust | +| `detect_extensions` | `['rs']` | Which extensions should trigger this module. | +| `detect_files` | `['Cargo.toml']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'bold red'` | 此组件的样式。 | +| `disabled` | `false` | 禁用 `rust` 组件。 | ### 变量 @@ -3651,16 +3652,16 @@ The `scala` module shows the currently installed version of [Scala](https://www. ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [${symbol}(${version} )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `detect_extensions` | `['sbt', 'scala']` | Which extensions should trigger this module. | -| `detect_files` | `['.scalaenv', '.sbtenv', 'build.sbt']` | Which filenames should trigger this module. | -| `detect_folders` | `['.metals']` | Which folders should trigger this modules. | -| `符号` | `'🆂 '` | A format string representing the symbol of Scala. | -| `style` | `'red dimmed'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `scala` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ---------------------------------------- | ------------------------------------------------- | +| `format` | `'via [${symbol}(${version} )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `detect_extensions` | `['sbt', 'scala']` | Which extensions should trigger this module. | +| `detect_files` | `['.scalaenv', '.sbtenv', 'build.sbt']` | 哪些文件应触发此组件 | +| `detect_folders` | `['.metals']` | Which folders should trigger this modules. | +| `符号` | `'🆂 '` | A format string representing the symbol of Scala. | +| `style` | `'red dimmed'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `scala` module. | ### 变量 @@ -3720,7 +3721,7 @@ The `shell` module shows an indicator for currently used shell. *: 此变量只能作为样式字符串的一部分使用 -### Examples +### 示例 ```toml # ~/.config/starship.toml @@ -3824,17 +3825,17 @@ The `solidity` module shows the currently installed version of [Solidity](https: ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'S '` | A format string representing the symbol of Solidity | -| `compiler | ['solc'] | The default compiler for Solidity. | -| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold blue'` | 此组件的样式。 | -| `disabled` | `false` | Disables this module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | --------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${major}.${minor}.${patch}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'S '` | A format string representing the symbol of Solidity | +| `compiler | ['solc'] | The default compiler for Solidity. | +| `detect_extensions` | `['sol']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'bold blue'` | 此组件的样式。 | +| `disabled` | `false` | Disables this module. | ### 变量 @@ -4006,16 +4007,16 @@ By default the `swift` module shows the currently installed version of [Swift](h ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'🐦 '` | A format string representing the symbol of Swift | -| `detect_extensions` | `['swift']` | Which extensions should trigger this module. | -| `detect_files` | `['Package.swift']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold 202'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `swift` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'🐦 '` | A format string representing the symbol of Swift | +| `detect_extensions` | `['swift']` | Which extensions should trigger this module. | +| `detect_files` | `['Package.swift']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'bold 202'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `swift` module. | ### 变量 @@ -4053,16 +4054,16 @@ By default the module will be shown if any of the following conditions are met: ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol$workspace]($style) '` | The format string for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'💠'` | A format string shown before the terraform workspace. | -| `detect_extensions` | `['tf', 'tfplan', 'tfstate']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `['.terraform']` | Which folders should trigger this module. | -| `style` | `'bold 105'` | 此组件的样式。 | -| `disabled` | `false` | 禁用 `terraform` 组件。 | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ----------------------------------------------------- | +| `format` | `'via [$symbol$workspace]($style) '` | The format string for the module. | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'💠'` | A format string shown before the terraform workspace. | +| `detect_extensions` | `['tf', 'tfplan', 'tfstate']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | 哪些文件应触发此组件 | +| `detect_folders` | `['.terraform']` | 那些文件夹应该触发此组件 | +| `style` | `'bold 105'` | 此组件的样式。 | +| `disabled` | `false` | 禁用 `terraform` 组件。 | ### 变量 @@ -4152,16 +4153,16 @@ By default, the module will be shown if any of the following conditions are met: ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'t '` | A format string representing the symbol of Daml | -| `style` | `'bold #0093A7'` | 此组件的样式。 | -| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | -| `detect_files` | `['template.typ']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `disabled` | `false` | Disables the `daml` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ----------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'t '` | A format string representing the symbol of Daml | +| `style` | `'bold #0093A7'` | 此组件的样式。 | +| `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | +| `detect_files` | `['template.typ']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `disabled` | `false` | Disables the `daml` module. | ### 变量 @@ -4227,16 +4228,16 @@ The `vagrant` module shows the currently installed version of [Vagrant](https:// ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'⍱ '` | A format string representing the symbol of Vagrant. | -| `detect_extensions` | `[]` | Which extensions should trigger this module. | -| `detect_files` | `['Vagrantfile']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'cyan bold'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `vagrant` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | --------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'⍱ '` | A format string representing the symbol of Vagrant. | +| `detect_extensions` | `[]` | Which extensions should trigger this module. | +| `detect_files` | `['Vagrantfile']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'cyan bold'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `vagrant` module. | ### 变量 @@ -4266,16 +4267,16 @@ The `vlang` module shows you your currently installed version of [V](https://vla ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | -------------------------------------------- | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'V '` | A format string representing the symbol of V | -| `detect_extensions` | `['v']` | Which extensions should trigger this module. | -| `detect_files` | `['v.mod', 'vpkg.json', '.vpkg-lock.json' ]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'blue bold'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `vlang` module. | +| 选项 | 默认值 | 描述 | +| ------------------- | -------------------------------------------- | -------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'V '` | A format string representing the symbol of V | +| `detect_extensions` | `['v']` | Which extensions should trigger this module. | +| `detect_files` | `['v.mod', 'vpkg.json', '.vpkg-lock.json' ]` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `style` | `'blue bold'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `vlang` module. | ### 变量 @@ -4333,16 +4334,16 @@ By default the `zig` module shows the currently installed version of [Zig](https ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `符号` | `'↯ '` | The symbol used before displaying the version of Zig. | -| `style` | `'bold yellow'` | 此组件的样式。 | -| `disabled` | `false` | Disables the `zig` module. | -| `detect_extensions` | `['zig']` | Which extensions should trigger this module. | -| `detect_files` | `[]` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ----------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'↯ '` | The symbol used before displaying the version of Zig. | +| `style` | `'bold yellow'` | 此组件的样式。 | +| `disabled` | `false` | Disables the `zig` module. | +| `detect_extensions` | `['zig']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | ### 变量 diff --git a/docs/zh-CN/faq/README.md b/docs/zh-CN/faq/README.md index 9d21b222..57f87a70 100644 --- a/docs/zh-CN/faq/README.md +++ b/docs/zh-CN/faq/README.md @@ -121,10 +121,10 @@ Starship 的卸载过程与安装过程一样简单。 sh -c 'rm "$(command -v 'starship')"' ``` -## How do I install Starship without `sudo`? +## 我如何在没有 `sudo` 的情况下安装 Starship? -The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. +Shell 安装脚本(`https://starship.rs/install`) 只尝试使用 `sudo`当安装目录不可被当前用户写入 默认安装目录是环境变量 `$BIN_DIR` 的值或者 `/usr/loca/bin` 如果 if `$BIN_DIR` 未设置 如果你使用一个用户可写的安装目录替代, 你应该可以不使用 `sudo` 安装 Starship 例如, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` 使用 `-b` 选项设置安装目录到 `~/.local/bin` -For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. +对于非交互 Starship 安装, 请添加 `-y` 以跳过确认 查看安装脚本源码以获取所有支持的选项 -When using a package manager, see the documentation for your package manager about installing with or without `sudo`. +当使用包管理器时, 查询包管理器关于有无`sudo`安装的文档 diff --git a/docs/zh-CN/guide/README.md b/docs/zh-CN/guide/README.md index b2b95546..3ee33d96 100644 --- a/docs/zh-CN/guide/README.md +++ b/docs/zh-CN/guide/README.md @@ -161,10 +161,10 @@ align="right" /> -**轻量、迅速、可无限定制的高颜值终端!** +**轻量、迅速、客制化的高颜值终端!** - **快:** 很快 —— 真的真的非常快! 🚀 -- **定制化:** 可定制各种各样的提示符。 +- **客制化:** 可定制各种各样的提示符。 - **通用:** 适用于任何 Shell、任何操作系统。 - **智能:** 一目了然地显示相关信息。 - **功能丰富:** 支持所有你喜欢的工具。 @@ -227,7 +227,7 @@ curl -sS https://starship.rs/install.sh | sh | _任意发行版_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | | _任意发行版_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | | Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | -| Arch Linux | [Arch Linux 额外](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | +| Arch Linux | [Arch Linux extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | | CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
`dnf install starship` | | Gentoo | [Gentoo Packages](https://packages.gentoo.org/packages/app-shells/starship) | `emerge app-shells/starship` | | Manjaro | | `pacman -S starship` | @@ -348,7 +348,7 @@ starship init nu | save -f ~/.cache/starship/init.nu 然后在您的 Nushell 配置文件的最后(使用 `$nu.config-path` 来获取它的路径),添加以下内容: ```sh -使用 ~/.cache/starship/init.nu +use ~/.cache/starship/init.nu ``` 注意:仅支持 Nushell v0.78+ @@ -411,7 +411,7 @@ eval "$(starship init zsh)" ## 🤝 贡献 -我们欢迎 **任何水平** 的参与者! 如果想练手,可以试着解决某个标记为 [good first issue](https://github.com/starship/starship/labels/🌱%20good%20first%20issue) 的议题。 +我们欢迎 **任何水平** 的参与者! 如果想练手,可以试着解决某个标记为 [good first issue](https://github.com/starship/starship/labels/🌱%20good%20first%20issue) 的 Issue。 如果你精通非英语语言,请协助我们翻译并更新文档,非常感谢! 你可以在 [Starship Crowdin](https://translate.starship.rs/) 上参与翻译。 @@ -419,7 +419,7 @@ eval "$(starship init zsh)" ## 💭 该项目受以下项目启发 -请看看这些之前的项目,他们启发了 Starship 项目。 🙏 +请查看这些曾经启发了 Starship 的项目。 🙏 - **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – 为宇航员准备的 ZSH 提示符。 diff --git a/docs/zh-CN/presets/gruvbox-rainbow.md b/docs/zh-CN/presets/gruvbox-rainbow.md index 4701cd1a..8402e96d 100644 --- a/docs/zh-CN/presets/gruvbox-rainbow.md +++ b/docs/zh-CN/presets/gruvbox-rainbow.md @@ -8,7 +8,7 @@ This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), an ### 前置要求 -- 安装一种 [Nerd fonts](https://www.nerdfonts.com/) 并在您的终端启用。 +- 安装一种 [Nerd Font](https://www.nerdfonts.com/) 并在您的终端启用。 ### 配置 diff --git a/docs/zh-CN/presets/nerd-font.md b/docs/zh-CN/presets/nerd-font.md index eb6b1440..312f3c64 100644 --- a/docs/zh-CN/presets/nerd-font.md +++ b/docs/zh-CN/presets/nerd-font.md @@ -2,13 +2,13 @@ # Nerd 字体符号预设 -此预设使用 Nerd 字体的符号显示所有组件。 +此预设使用 Nerd Font 的符号显示所有组件。 -![Nerd 字体符号预设截图](/presets/img/nerd-font-symbols.png) +![Nerd Font 符号预设截图](/presets/img/nerd-font-symbols.png) ### 前置要求 -- 安装一种 [Nerd 字体](https://www.nerdfonts.com/) 并在您的终端启用(示例使用的是 Fira Code 字体)。 +- 安装一种 [Nerd Font](https://www.nerdfonts.com/) 并在您的终端启用 (示例使用的是 Fira Code 字体)。 ### 配置 diff --git a/docs/zh-CN/presets/tokyo-night.md b/docs/zh-CN/presets/tokyo-night.md index 57f8b38e..526f2781 100644 --- a/docs/zh-CN/presets/tokyo-night.md +++ b/docs/zh-CN/presets/tokyo-night.md @@ -8,7 +8,7 @@ ### 前置要求 -- 安装一种 [Nerd fonts](https://www.nerdfonts.com/) 并在您的终端启用。 +- 安装一种 [Nerd Font](https://www.nerdfonts.com/) 并在您的终端启用。 ### 配置 diff --git a/docs/zh-TW/advanced-config/README.md b/docs/zh-TW/advanced-config/README.md index 3b5c300c..89a696d7 100644 --- a/docs/zh-TW/advanced-config/README.md +++ b/docs/zh-TW/advanced-config/README.md @@ -80,6 +80,26 @@ starship init fish | source enable_transience ``` +## TransientPrompt and TransientRightPrompt in Bash + +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: + +The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. + +Make the following changes to your `~/.bashrc` to customize what gets displayed on the left and on the right: + +- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do + +```bash +bleopt prompt_ps1_final="$(starship module character)" +``` + +- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do + +```bash +bleopt prompt_rps1_final="$(starship module time)" +``` + ## Custom pre-prompt and pre-execution Commands in Cmd Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements: @@ -205,7 +225,9 @@ Some shells support a right prompt which renders on the same line as the input. Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). -`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell. +`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. + +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. ### 範例 diff --git a/docs/zh-TW/config/README.md b/docs/zh-TW/config/README.md index 7f0845e4..508690dd 100644 --- a/docs/zh-TW/config/README.md +++ b/docs/zh-TW/config/README.md @@ -46,7 +46,7 @@ os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\star ### Logging -By default starship logs warnings and errors into a file named `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`, where the session key is corresponding to an instance of your terminal. This, however can be changed using the `STARSHIP_CACHE` environment variable: +在預設值下 starship 會記錄警告以及錯誤至`~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`,其中 session key 對應至您的終端機實例 不過,可以使用 `STARSHIP_CACHE` 環境變數來變更此設定: ```sh export STARSHIP_CACHE=~/.starship/cache @@ -85,7 +85,7 @@ The following Starship syntax symbols have special usage in a format string and | `'''` | multi-line literal string | less escaping | | `"""` | multi-line string | more escaping, newlines in declarations can be ignored | -For example: +範例: ```toml # literal string @@ -98,7 +98,7 @@ format = "☺\\☻ " format = '\[\$\] ' ``` -When using line breaks, multi-line declarations can be used. For example, if you want to print a `$` symbol on a new line, the following values for `format` are equivalent: +使用換行符號時,可以使用多行宣告 舉例來說,如果你想在一個新行印出 `$` 符號,則下列的 `format` 值具有相同效果 ```toml # with literal string @@ -115,7 +115,7 @@ format = """ format = "\n\\$" ``` -In multiline basic strings, newlines can be used for formatting without being present in the value by escaping them. +在多行基本字串中,換行符號可用於格式化,而無需透過跳脫字元出現在值中。 ```toml format = """ @@ -128,7 +128,7 @@ line2 """ ``` -### Format Strings +### 格式化字串 Format strings are the format that a module prints all its variables with. Most modules have an entry called `format` that configures the display format of the module. You can use texts, variables and text groups in a format string. @@ -136,7 +136,7 @@ Format strings are the format that a module prints all its variables with. Most A variable contains a `$` symbol followed by the name of the variable. The name of a variable can only contain letters, numbers and `_`. -For example: +範例: - `'$version'` is a format string with a variable named `version`. - `'$git_branch$git_commit'` is a format string with two variables named `git_branch` and `git_commit`. @@ -150,7 +150,7 @@ The first part, which is enclosed in a `[]`, is a [format string](#format-string In the second part, which is enclosed in a `()`, is a [style string](#style-strings). This can be used to style the first part. -For example: +範例: - `'[on](red bold)'` will print a string `on` with bold text colored red. - `'[⌘ $version](bold green)'` will print a symbol `⌘` followed by the content of variable `version`, with bold text colored green. @@ -173,7 +173,7 @@ Starship 內大多數的模組允許你設定他們的顯示風格。 這要透 A conditional format string wrapped in `(` and `)` will not render if all variables inside are empty. -For example: +範例: - `'(@$region)'` will show nothing if the variable `region` is `None` or empty string, otherwise `@` followed by the value of region. - `'(some text)'` will always show nothing since there are no variables wrapped in the braces. @@ -197,7 +197,7 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ----------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [連結](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | @@ -242,9 +242,9 @@ blue = '21' mustard = '#af8700' ``` -### Default Prompt Format +### 預設提示字元格式 -The default `format` is used to define the format of the prompt, if empty or no `format` is provided. 預設如下: +如果為空值或未提供 `format`,則預設`format`用於定義提示字元的格式。 預設如下: ```toml format = '$all' @@ -340,7 +340,7 @@ $shell\ $character""" ``` -If you just want to extend the default format, you can use `$all`; modules you explicitly add to the format will not be duplicated. Eg. +如果你只是想要擴充預設的格式,可以使用 `$all`,您明確地新增到格式中的模組將不會重複。 Eg. ```toml # Move the directory to the second line @@ -365,7 +365,7 @@ When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | `format` | `'on [$symbol($profile )(\($region\) )(\[$duration\] )]($style)'` | The format for the module. | | `symbol` | `'☁️ '` | 顯示在目前 AWS 配置之前的符號。 | @@ -376,7 +376,7 @@ When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile | `disabled` | `false` | 停用 `AWS` 模組。 | | `force_display` | `false` | If `true` displays info even if `credentials`, `credential_process` or `sso_start_url` have not been setup. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------------- | ------------------------------------------- | @@ -388,9 +388,9 @@ When using [aws-sso-cli](https://github.com/synfinatic/aws-sso-cli) the profile *: This variable can only be used as a part of a style string -### Examples +### 範例 -#### Display everything +#### 顯示所有 ```toml # ~/.config/starship.toml @@ -406,7 +406,7 @@ us-east-1 = 'va' CompanyGroupFrobozzOnCallAccess = 'Frobozz' ``` -#### Display region +#### 顯示 region ```toml # ~/.config/starship.toml @@ -420,7 +420,7 @@ ap-southeast-2 = 'au' us-east-1 = 'va' ``` -#### Display profile +#### 顯示 profile ```toml # ~/.config/starship.toml @@ -447,9 +447,9 @@ The `azure` module shows the current Azure Subscription. This is based on showin | `disabled` | `true` | Disables the `azure` module. | | `subscription_aliases` | `{}` | Table of subscription name aliases to display in addition to Azure subscription name. | -### Examples +### 範例 -#### Display Subscription Name +#### 顯示訂閱名稱 ```toml # ~/.config/starship.toml @@ -461,7 +461,7 @@ symbol = '󰠅 ' style = 'blue bold' ``` -#### Display Username +#### 顯示使用者名稱 ```toml # ~/.config/starship.toml @@ -473,7 +473,7 @@ symbol = "󰠅 " style = "blue bold" ``` -#### Display Subscription Name Alias +#### 顯示訂閱名稱別名 ```toml # ~/.config/starship.toml @@ -488,7 +488,7 @@ very-long-subscription-name = 'vlsn' ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | --------------------------------- | -------------------------- | | `full_symbol` | `'󰁹 '` | 當電池充飽時顯示的符號。 | | `charging_symbol` | `'󰂄 '` | 當電池正在充電時顯示的符號。 | @@ -526,7 +526,7 @@ The default value for the `charging_symbol` and `discharging_symbol` option is r `display` 選項是一個下列表格的陣列。 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | ------------ | --------------------------------------------------------------------------------------------------------- | | `threshold` | `10` | 顯示選項的上界。 | | `style` | `'red bold'` | 顯示選項使用時的風格。 | @@ -543,7 +543,7 @@ style = 'bold red' [[battery.display]] # 'bold yellow' style and 💦 symbol when capacity is between 10% and 30% threshold = 30 style = 'bold yellow' -discharging_symbol = '💦' +discharging_symbol = '💦 ' # when capacity is over 30%, the battery indicator will not be displayed ``` @@ -557,7 +557,7 @@ The `buf` module shows the currently installed version of [Buf](https://buf.buil ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------------- | ----------------------------------------------------- | | `format` | `'with [$symbol($version )]($style)'` | The format for the `buf` module. | | `version_format` | `'v${raw}'` | The version format. | @@ -568,7 +568,7 @@ The `buf` module shows the currently installed version of [Buf](https://buf.buil | `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `elixir` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -596,7 +596,7 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -607,7 +607,7 @@ The `bun` module shows the currently installed version of the [bun](https://bun. | `style` | `'bold red'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `bun` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -632,7 +632,7 @@ The `c` module shows some information about your C compiler. By default the modu ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version(-$name) )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -644,7 +644,7 @@ The `c` module shows some information about your C compiler. By default the modu | `style` | `'bold 149'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `c` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------- | ------ | ------------------------------------ | @@ -691,7 +691,7 @@ By default it only changes color. If you also want to change its shape take a lo ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | --------------------------- | -------------------- | --------------------------------------------------------------------------------------- | | `format` | `'$symbol '` | The format string used before the text input. | | `success_symbol` | `'[❯](bold green)'` | The format string used before the text input if the previous command succeeded. | @@ -702,13 +702,13 @@ By default it only changes color. If you also want to change its shape take a lo | `vimcmd_visual_symbol` | `'[❮](bold yellow)'` | The format string used before the text input if the shell is in vim visual mode. | | `disabled` | `false` | 停用 `character` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------ | -- | -------------------------------------------------------------------------------------------------------- | | symbol | | A mirror of either `success_symbol`, `error_symbol`, `vimcmd_symbol` or `vimcmd_replace_one_symbol` etc. | -### Examples +### 範例 #### With custom error shape @@ -748,7 +748,7 @@ The `cmake` module shows the currently installed version of [CMake](https://cmak ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -759,7 +759,7 @@ The `cmake` module shows the currently installed version of [CMake](https://cmak | `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `cmake` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -778,7 +778,7 @@ The `cobol` module shows the currently installed version of COBOL. By default, t ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `symbol` | `'⚙️ '` | The symbol used before displaying the version of COBOL. | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | @@ -789,7 +789,7 @@ The `cobol` module shows the currently installed version of COBOL. By default, t | `detect_folders` | `[]` | Which folders should trigger this module. | | `disabled` | `false` | Disables the `cobol` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------- | ------------------------------------ | @@ -813,7 +813,7 @@ The `cobol` module shows the currently installed version of COBOL. By default, t ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `min_time` | `2_000` | Shortest duration to show time for (in milliseconds). | | `show_milliseconds` | `false` | 顯示時間除了以秒為單位外,亦以毫秒顯示 | @@ -824,7 +824,7 @@ The `cobol` module shows the currently installed version of COBOL. By default, t | `min_time_to_notify` | `45_000` | Shortest duration for notification (in milliseconds). | | `notification_timeout` | | Duration to show notification for (in milliseconds). If unset, notification timeout will be determined by daemon. Not all notification daemons honor this option. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | --------------------------------------- | @@ -855,7 +855,7 @@ This does not suppress conda's own prompt modifier, you may want to run `conda c ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------- | | `truncation_length` | `1` | 如果環境變數由所`conda create -p [path]`產生時,環境變數的資料夾需要截斷的數目。 `0` 表示不截斷 也請參考 [`directory`](#directory)模組 | | `symbol` | `'🅒 '` | 環境名稱前使用的符號。 | @@ -864,7 +864,7 @@ This does not suppress conda's own prompt modifier, you may want to run `conda c | `ignore_base` | `true` | Ignores `base` environment when activated. | | `disabled` | `false` | 停用 `conda` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ----------- | ------------ | ------------------------------------ | @@ -889,14 +889,14 @@ The `container` module displays a symbol and container name, if inside a contain ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | ---------------------------------- | ----------------------------------------- | | `symbol` | `'⬢'` | The symbol shown, when inside a container | | `style` | `'bold red dimmed'` | 這個模組的風格。 | | `format` | `'[$symbol \[$name\]]($style) '` | The format for the module. | | `disabled` | `false` | Disables the `container` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------------- | ------------------------------------ | @@ -924,7 +924,7 @@ The `crystal` module shows the currently installed version of [Crystal](https:// ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `symbol` | `'🔮 '` | The symbol used before displaying the version of crystal. | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | @@ -935,7 +935,7 @@ The `crystal` module shows the currently installed version of [Crystal](https:// | `detect_folders` | `[]` | Which folders should trigger this module. | | `disabled` | `false` | Disables the `crystal` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -962,7 +962,7 @@ The `daml` module shows the currently used [Daml](https://www.digitalasset.com/d ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -973,7 +973,7 @@ The `daml` module shows the currently used [Daml](https://www.digitalasset.com/d | `detect_folders` | `[]` | Which folders should trigger this module. | | `disabled` | `false` | Disables the `daml` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -1002,7 +1002,7 @@ The `dart` module shows the currently installed version of [Dart](https://dart.d ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -1013,7 +1013,7 @@ The `dart` module shows the currently installed version of [Dart](https://dart.d | `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `dart` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -1040,7 +1040,7 @@ The `deno` module shows you your currently installed version of [Deno](https://d ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -1051,7 +1051,7 @@ The `deno` module shows you your currently installed version of [Deno](https://d | `style` | `'green bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `deno` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -1078,7 +1078,7 @@ When using the `fish_style_pwd_dir_length` option, instead of hiding the path th ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | `truncation_length` | `3` | 到達現在資料夾的路徑中,要被裁減掉的資料夾數目。 | | `truncate_to_repo` | `true` | 是否要裁減到你現在所在的 git 儲存庫的根目錄。 | @@ -1115,7 +1115,7 @@ When using the `fish_style_pwd_dir_length` option, instead of hiding the path th
-### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------------------- | ----------------------------------- | @@ -1155,7 +1155,7 @@ The `direnv` module shows the status of the current rc file if one is present. T ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------------- | ----------------------------------------------------- | | `format` | `'[$symbol$loaded/$allowed]($style) '` | The format for the module. | | `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | @@ -1165,11 +1165,12 @@ The `direnv` module shows the status of the current rc file if one is present. T | `detect_files` | `['.envrc']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | | `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | +| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | | `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | | `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | | `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------------- | --------------------------------------- | @@ -1196,7 +1197,7 @@ The `docker_context` module shows the currently active [Docker context](https:// ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------- | | `format` | `'via [$symbol$context]($style) '` | The format for the module. | | `symbol` | `'🐳 '` | The symbol used before displaying the Docker context. | @@ -1207,7 +1208,7 @@ The `docker_context` module shows the currently active [Docker context](https:// | `style` | `'blue bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `docker_context` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------------- | ------------------------------------ | @@ -1249,7 +1250,7 @@ The module will also show the Target Framework Moniker ("` | The description of the module that is shown when running `starship explain`. | | `disabled` | `false` | 停用 `env_var` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------------------------------------- | ------------------------------------------ | @@ -1444,7 +1445,7 @@ The `erlang` module shows the currently installed version of [Erlang/OTP](https: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -1455,7 +1456,7 @@ The `erlang` module shows the currently installed version of [Erlang/OTP](https: | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `erlang` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -1482,7 +1483,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -1493,7 +1494,7 @@ The `fennel` module shows the currently installed version of [Fennel](https://fe | `detect_folders` | `[]` | Which folders should trigger this modules. | | `disabled` | `false` | Disables the `fennel` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -1518,7 +1519,7 @@ The `fill` module fills any extra space on the line with a symbol. If multiple ` ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | -------------- | --------------------------------- | | `symbol` | `'.'` | The symbol used to fill the line. | | `style` | `'bold black'` | 這個模組的風格。 | @@ -1547,7 +1548,7 @@ The `fossil_branch` module shows the name of the active branch of the check-out ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------- | ---------------------------------------------------------------------------------- | | `format` | `'on [$symbol$branch]($style) '` | The format for the module. Use `'$branch'` to refer to the current branch name. | | `symbol` | `' '` | The symbol used before the branch name of the check-out in your current directory. | @@ -1556,7 +1557,7 @@ The `fossil_branch` module shows the name of the active branch of the check-out | `truncation_symbol` | `'…'` | 用來指示分支名稱被縮減的符號。 You can use `''` for no symbol. | | `disabled` | `true` | Disables the `fossil_branch` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------- | ------------------------------------ | @@ -1583,7 +1584,7 @@ The `fossil_metrics` module will show the number of added and deleted lines in t ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | ------------------------------------------------------------ | ------------------------------------- | | `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | The format for the module. | | `added_style` | `'bold green'` | The style for the added count. | @@ -1591,7 +1592,7 @@ The `fossil_metrics` module will show the number of added and deleted lines in t | `only_nonzero_diffs` | `true` | Render status only for changed items. | | `disabled` | `true` | Disables the `fossil_metrics` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ----------------- | --- | ------------------------------------------- | @@ -1620,7 +1621,7 @@ When the module is enabled it will always be active, unless `detect_env_vars` ha ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ----------------- | ---------------------------------------------------------- | ---------------------------------------------------------------- | | `format` | `'on [$symbol$account(@$domain)(\($region\))]($style) '` | The format for the module. | | `symbol` | `'☁️ '` | The symbol used before displaying the current GCP profile. | @@ -1630,7 +1631,7 @@ When the module is enabled it will always be active, unless `detect_env_vars` ha | `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `gcloud` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------- | ------------------------------------------------------------------ | @@ -1644,7 +1645,7 @@ When the module is enabled it will always be active, unless `detect_env_vars` ha *: This variable can only be used as a part of a style string -### Examples +### 範例 #### Display account and project @@ -1694,7 +1695,7 @@ very-long-project-name = 'vlpn' ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------ | | `always_show_remote` | `false` | Shows the remote tracking branch name, even if it is equal to the local branch name. | | `format` | `'on [$symbol$branch(:$remote_branch)]($style) '` | The format for the module. Use `'$branch'` to refer to the current branch name. | @@ -1706,7 +1707,7 @@ very-long-project-name = 'vlpn' | `ignore_branches` | `[]` | A list of names to avoid displaying. Useful for 'master' or 'main'. | | `disabled` | `false` | 停用 `git_branch` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------------- | -------- | ------------------------------------------------------------------------------------------------------ | @@ -1730,13 +1731,13 @@ truncation_symbol = '' ignore_branches = ['master', 'main'] ``` -## Git Commit +## Git 提交 The `git_commit` module shows the current commit hash and also the tag (if any) of the repo in your current directory. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | ------------------------------ | ------------------------------------------------------------------------------------ | | `commit_hash_length` | `7` | The length of the displayed git commit hash. | | `format` | `'[\($hash$tag\)]($style) '` | The format for the module. | @@ -1747,7 +1748,7 @@ The `git_commit` module shows the current commit hash and also the tag (if any) | `tag_symbol` | `' 🏷 '` | Tag symbol prefixing the info shown | | `disabled` | `false` | Disables the `git_commit` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | -------------------------------------------- | @@ -1773,7 +1774,7 @@ tag_symbol = '🔖 ' ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------- | | `rebase` | `'REBASING'` | A format string displayed when a `rebase` is in progress. | | `merge` | `'MERGING'` | A format string displayed when a `merge` is in progress. | @@ -1786,7 +1787,7 @@ tag_symbol = '🔖 ' | `format` | `'\([$state( $progress_current/$progress_total)]($style)\) '` | The format for the module. | | `disabled` | `false` | 停用 `git_state` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ---------------- | ---------- | ----------------------------------- | @@ -1819,7 +1820,7 @@ The `git_metrics` module will show the number of added and deleted lines in the ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | ------------------------------------------------------------ | ------------------------------------- | | `added_style` | `'bold green'` | The style for the added count. | | `deleted_style` | `'bold red'` | The style for the deleted count. | @@ -1828,7 +1829,7 @@ The `git_metrics` module will show the number of added and deleted lines in the | `disabled` | `true` | Disables the `git_metrics` module. | | `ignore_submodules` | `false` | Ignore changes to submodules | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ----------------- | --- | ------------------------------------------- | @@ -1849,7 +1850,7 @@ added_style = 'bold blue' format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' ``` -## Git Status +## Git 狀態 `git_status` 模組顯示用來表示現在資料夾之中儲存庫狀態的符號。 @@ -1861,7 +1862,7 @@ The Git Status module is very slow in Windows directories (for example under `/m ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | | `format` | `'([\[$all_status$ahead_behind\]]($style) )'` | The default format for `git_status` | | `conflicted` | `'='` | 這個分支有合併衝突。 | @@ -1881,7 +1882,7 @@ The Git Status module is very slow in Windows directories (for example under `/m | `disabled` | `false` | 停用 `git_status` 模組。 | | `windows_starship` | | Use this (Linux) path to a Windows Starship executable to render `git_status` when on Windows paths in WSL. | -### Variables +### 變數 The following variables can be used in `format`: @@ -1969,7 +1970,7 @@ The `golang` module shows the currently installed version of [Go](https://golang ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -1981,7 +1982,7 @@ The `golang` module shows the currently installed version of [Go](https://golang | `not_capable_style` | `'bold red'` | The style for the module when the go directive in the go.mod file does not match the installed Go version. | | `disabled` | `false` | 停用 `golang` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ----------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | @@ -2016,14 +2017,14 @@ The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | -------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol]($style) '` | The format for the module. | | `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | | `style` | `'yellow bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `guix_shell` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -- | ------------------------------------ | @@ -2055,7 +2056,7 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2067,7 +2068,7 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | `disabled` | `false` | Disables the `gradle` module. | | `recursive` | `false` | Enables recursive finding for the `gradle` directory. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------- | -------- | ------------------------------------ | @@ -2088,7 +2089,7 @@ By default the module will be shown if any of the following conditions are met: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | -------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `symbol` | `'λ '` | A format string representing the symbol of Haskell | @@ -2098,7 +2099,7 @@ By default the module will be shown if any of the following conditions are met: | `style` | `'bold purple'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `haskell` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | -------------- | ----------- | --------------------------------------------------------------------------------------- | @@ -2120,7 +2121,7 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2131,7 +2132,7 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | `style` | `'bold fg:202'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `haxe` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -2159,7 +2160,7 @@ The `helm` module shows the currently installed version of [Helm](https://helm.s ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2170,7 +2171,7 @@ The `helm` module shows the currently installed version of [Helm](https://helm.s | `style` | `'bold white'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `helm` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -2195,7 +2196,7 @@ format = 'via [⎈ $version](bold white) ' ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ----------------- | -------------------------------------- | -------------------------------------------------------------------------------------------- | | `ssh_only` | `true` | 只在連接到一個 SSH session 時顯示主機名稱。 | | `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | @@ -2205,7 +2206,7 @@ format = 'via [⎈ $version](bold white) ' | `style` | `'bold dimmed green'` | 這個模組的風格。 | | `disabled` | `false` | 停用 `hostname` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ---------- | ---------- | ----------------------------------------------------- | @@ -2215,7 +2216,7 @@ format = 'via [⎈ $version](bold white) ' *: This variable can only be used as a part of a style string -### Examples +### 範例 #### Always show the hostname @@ -2249,7 +2250,7 @@ The `java` module shows the currently installed version of [Java](https://www.or ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [${symbol}(${version} )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2260,7 +2261,7 @@ The `java` module shows the currently installed version of [Java](https://www.or | `style` | `'red dimmed'` | 這個模組的風格。 | | `disabled` | `false` | 停用 `java` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ----- | ------------------------------------ | @@ -2303,7 +2304,7 @@ The `threshold` option is deprecated, but if you want to use it, the module will ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------ | ----------------------------- | ------------------------------------------------------------------------ | | `threshold`* | `1` | 在超過指定值時顯示工作數量。 | | `symbol_threshold` | `1` | Show `symbol` if the job count is at least `symbol_threshold`. | @@ -2315,7 +2316,7 @@ The `threshold` option is deprecated, but if you want to use it, the module will *: This option is deprecated, please use the `number_threshold` and `symbol_threshold` options instead. -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --- | ------------------------------------ | @@ -2346,7 +2347,7 @@ The `julia` module shows the currently installed version of [Julia](https://juli ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2357,7 +2358,7 @@ The `julia` module shows the currently installed version of [Julia](https://juli | `style` | `'bold purple'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `julia` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -2384,7 +2385,7 @@ The `kotlin` module shows the currently installed version of [Kotlin](https://ko ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2396,7 +2397,7 @@ The `kotlin` module shows the currently installed version of [Kotlin](https://ko | `kotlin_binary` | `'kotlin'` | Configures the kotlin binary that Starship executes when getting the version. | | `disabled` | `false` | Disables the `kotlin` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -2443,7 +2444,7 @@ The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` ::: -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- | | `symbol` | `'☸ '` | A format string representing the symbol displayed before the Cluster. | | `format` | `'[$symbol$context( \($namespace\))]($style) in '` | The format for the module. | @@ -2471,7 +2472,7 @@ To customize the style of the module for specific environments, use the followin Note that all regular expression are anchored with `^$` and so must match the whole string. The `*_pattern` regular expressions may contain capture groups, which can be referenced in the corresponding alias via `$name` and `$N` (see example below and the [rust Regex::replace() documentation](https://docs.rs/regex/latest/regex/struct.Regex.html#method.replace)). -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------------------- | ---------------------------------------- | @@ -2545,7 +2546,7 @@ context_alias = "gke-$cluster" ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | ------- | ----------------------------- | | `disabled` | `false` | 停用 `line_break` 模組,讓提示字元變成一行。 | @@ -2564,14 +2565,14 @@ The `localip` module shows the IPv4 address of the primary network interface. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | ------------------------- | ------------------------------------------------------ | | `ssh_only` | `true` | Only show IP address when connected to an SSH session. | | `format` | `'[$localipv4]($style) '` | The format for the module. | | `style` | `'bold yellow'` | 這個模組的風格。 | | `disabled` | `true` | Disables the `localip` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------ | ----------------------------------- | @@ -2601,7 +2602,7 @@ The `lua` module shows the currently installed version of [Lua](http://www.lua.o ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | -------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2613,7 +2614,7 @@ The `lua` module shows the currently installed version of [Lua](http://www.lua.o | `lua_binary` | `'lua'` | Configures the lua binary that Starship executes when getting the version. | | `disabled` | `false` | Disables the `lua` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -2646,7 +2647,7 @@ format = 'via [🌕 $version](bold blue) ' ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ----------- | ----------------------------------------------- | -------------------------- | | `threshold` | `75` | 將記憶體使用量隱藏,除非使用量超過指定值。 | | `format` | `'via $symbol [${ram}( \| ${swap})]($style) '` | The format for the module. | @@ -2654,7 +2655,7 @@ format = 'via [🌕 $version](bold blue) ' | `style` | `'bold dimmed white'` | 這個模組的風格。 | | `disabled` | `true` | 停用 `memory_usage` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ---------------- | ------------- | ------------------------------------------------------------------ | @@ -2687,7 +2688,7 @@ By default the Meson project name is displayed, if `$MESON_DEVENV` is set. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------- | | `truncation_length` | `2^32 - 1` | Truncates a project name to `N` graphemes. | | `truncation_symbol` | `'…'` | The symbol used to indicate a project name was truncated. You can use `''` for no symbol. | @@ -2696,7 +2697,7 @@ By default the Meson project name is displayed, if `$MESON_DEVENV` is set. | `style` | `'blue bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `meson` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------- | ------------------------------------ | @@ -2724,7 +2725,7 @@ The `hg_branch` module shows the active branch and topic of the repo in your cur ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------- | | `symbol` | `' '` | The symbol used before the hg bookmark or branch name of the repo in your current directory. | | `style` | `'bold purple'` | 這個模組的風格。 | @@ -2733,7 +2734,7 @@ The `hg_branch` module shows the active branch and topic of the repo in your cur | `truncation_symbol` | `'…'` | 用來指示分支名稱被縮減的符號。 | | `disabled` | `true` | Disables the `hg_branch` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -2766,7 +2767,7 @@ The `nim` module shows the currently installed version of [Nim](https://nim-lang ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2777,7 +2778,7 @@ The `nim` module shows the currently installed version of [Nim](https://nim-lang | `style` | `'bold yellow'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `nim` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -2803,7 +2804,7 @@ The `nix_shell` module shows the [nix-shell](https://nixos.org/guides/nix-pills/ ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------- | ---------------------------------------------- | --------------------------------------------------------------------- | | `format` | `'via [$symbol$state( \($name\))]($style) '` | The format for the module. | | `symbol` | `'❄️ '` | A format string representing the symbol of nix-shell. | @@ -2814,7 +2815,7 @@ The `nix_shell` module shows the [nix-shell](https://nixos.org/guides/nix-pills/ | `disabled` | `false` | 停用 `nix_shell` 模組。 | | `heuristic` | `false` | Attempts to detect new `nix shell`-style shells with a heuristic. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------- | ------------------------------------ | @@ -2851,7 +2852,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2863,7 +2864,7 @@ The `nodejs` module shows the currently installed version of [Node.js](https://n | `disabled` | `false` | 停用 `nodejs` 模組。 | | `not_capable_style` | `'bold red'` | The style for the module when an engines property in package.json does not match the Node.js version. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -2896,7 +2897,7 @@ The `ocaml` module shows the currently installed version of [OCaml](https://ocam ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )(\($switch_indicator$switch_name\) )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2909,7 +2910,7 @@ The `ocaml` module shows the currently installed version of [OCaml](https://ocam | `style` | `'bold yellow'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `ocaml` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ---------------- | ------------ | ----------------------------------------------------------------- | @@ -2936,7 +2937,7 @@ The `opa` module shows the currently installed version of the OPA tool. By defau ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -2947,7 +2948,7 @@ The `opa` module shows the currently installed version of the OPA tool. By defau | `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `opa` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -2972,14 +2973,14 @@ The `openstack` module shows the current OpenStack cloud and project. The module ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | ----------------------------------------------- | -------------------------------------------------------------- | | `format` | `'on [$symbol$cloud(\($project\))]($style) '` | The format for the module. | | `symbol` | `'☁️ '` | The symbol used before displaying the current OpenStack cloud. | | `style` | `'bold yellow'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `openstack` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------ | ------------------------------------ | @@ -3019,7 +3020,7 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | --------------------- | ------------------------------------------------------ | | `format` | `'[$symbol]($style)'` | The format for the module. | | `style` | `'bold white'` | 這個模組的風格。 | @@ -3074,7 +3075,7 @@ Unknown = "❓ " Windows = "🪟 " ``` -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------ | ------------------------------------------------------------------ | @@ -3129,7 +3130,7 @@ The `package` 模組在現在資料夾是一個套件的儲藏庫時出現,並 ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ----------------- | --------------------------------- | ------------------------------------------------------------------------- | | `format` | `'is [$symbol$version]($style) '` | The format for the module. | | `symbol` | `'📦 '` | 顯示在套件的版本之前的符號。 | @@ -3138,7 +3139,7 @@ The `package` 模組在現在資料夾是一個套件的儲藏庫時出現,並 | `display_private` | `false` | Enable displaying version for packages marked as private. | | `disabled` | `false` | 停用 `package` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3169,7 +3170,7 @@ The `perl` module shows the currently installed version of [Perl](https://www.pe ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3180,7 +3181,7 @@ The `perl` module shows the currently installed version of [Perl](https://www.pe | `style` | `'bold 149'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `perl` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --------- | ------------------------------------ | @@ -3207,7 +3208,7 @@ The `php` module shows the currently installed version of [PHP](https://www.php. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3218,7 +3219,7 @@ The `php` module shows the currently installed version of [PHP](https://www.php. | `style` | `'147 bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `php` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3243,7 +3244,7 @@ The `pijul_channel` module shows the active channel of the repo in your current ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | --------------------------------- | ------------------------------------------------------------------------------------ | | `symbol` | `' '` | The symbol used before the pijul channel name of the repo in your current directory. | | `style` | `'bold purple'` | 這個模組的風格。 | @@ -3269,7 +3270,7 @@ By default the module will be shown if any of the following conditions are met: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------------- | -------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($username@)$stack]($style) '` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3278,7 +3279,7 @@ By default the module will be shown if any of the following conditions are met: | `search_upwards` | `true` | Enable discovery of pulumi config files in parent directories. | | `disabled` | `false` | Disables the `pulumi` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------- | ------------------------------------ | @@ -3319,7 +3320,7 @@ The `purescript` module shows the currently installed version of [PureScript](ht ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3330,7 +3331,7 @@ The `purescript` module shows the currently installed version of [PureScript](ht | `style` | `'bold white'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `purescript` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3369,7 +3370,7 @@ By default the module will be shown if any of the following conditions are met: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | -------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------- | | `format` | `'via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3391,7 +3392,7 @@ The default values and order for `python_binary` was chosen to first identify th ::: -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------------ | --------------- | ------------------------------------------ | @@ -3452,7 +3453,7 @@ The `rlang` module shows the currently installed version of [R](https://www.r-pr ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3463,7 +3464,7 @@ The `rlang` module shows the currently installed version of [R](https://www.r-pr | `detect_folders` | `['.Rproj.user']` | Which folders should trigger this module | | `disabled` | `false` | Disables the `r` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------- | ------------- | ------------------------------------ | @@ -3489,7 +3490,7 @@ The `raku` module shows the currently installed version of [Raku](https://www.ra ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version-$vm_version )]($style)'` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3500,7 +3501,7 @@ The `raku` module shows the currently installed version of [Raku](https://www.ra | `style` | `'bold 149'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `raku` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ---------- | ------ | ------------------------------------ | @@ -3526,7 +3527,7 @@ By default the `red` module shows the currently installed version of [Red](https ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3537,7 +3538,7 @@ By default the `red` module shows the currently installed version of [Red](https | `style` | `'red bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `red` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3569,7 +3570,7 @@ Starship gets the current Ruby version by running `ruby -v`. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3581,7 +3582,7 @@ Starship gets the current Ruby version by running `ruby -v`. | `style` | `'bold red'` | 這個模組的風格。 | | `disabled` | `false` | 停用 `ruby` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3609,7 +3610,7 @@ By default the `rust` module shows the currently installed version of [Rust](htt ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3620,7 +3621,7 @@ By default the `rust` module shows the currently installed version of [Rust](htt | `style` | `'bold red'` | 這個模組的風格。 | | `disabled` | `false` | 停用 `rust` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ----------------- | -------------------------------------------- | @@ -3651,7 +3652,7 @@ The `scala` module shows the currently installed version of [Scala](https://www. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [${symbol}(${version} )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3662,7 +3663,7 @@ The `scala` module shows the currently installed version of [Scala](https://www. | `style` | `'red dimmed'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `scala` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3693,7 +3694,7 @@ The `shell` module shows an indicator for currently used shell. ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | | `bash_indicator` | `'bsh'` | A format string used to represent bash. | | `fish_indicator` | `'fsh'` | A format string used to represent fish. | @@ -3711,7 +3712,7 @@ The `shell` module shows an indicator for currently used shell. | `style` | `'white bold'` | 這個模組的風格。 | | `disabled` | `true` | Disables the `shell` module. | -### Variables +### 變數 | 變數 | 預設 | 說明 | | --------- | -- | ---------------------------------------------------------- | @@ -3720,7 +3721,7 @@ The `shell` module shows an indicator for currently used shell. *: This variable can only be used as a part of a style string -### Examples +### 範例 ```toml # ~/.config/starship.toml @@ -3739,7 +3740,7 @@ The `shlvl` module shows the current [`SHLVL`](https://tldp.org/LDP/abs/html/int ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | --------------- | ---------------------------- | ------------------------------------------------------------------- | | `threshold` | `2` | Display threshold. | | `format` | `'[$symbol$shlvl]($style) '` | The format for the module. | @@ -3749,7 +3750,7 @@ The `shlvl` module shows the current [`SHLVL`](https://tldp.org/LDP/abs/html/int | `style` | `'bold yellow'` | 這個模組的風格。 | | `disabled` | `true` | Disables the `shlvl` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | --- | ------------------------------------ | @@ -3790,14 +3791,14 @@ The `singularity` module shows the current [Singularity](https://sylabs.io/singu ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | -------------------------------- | ------------------------------------------------ | | `format` | `'[$symbol\[$env\]]($style) '` | The format for the module. | | `symbol` | `''` | A format string displayed before the image name. | | `style` | `'bold dimmed blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `singularity` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------ | ------------------------------------ | @@ -3824,7 +3825,7 @@ The `solidity` module shows the currently installed version of [Solidity](https: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${major}.${minor}.${patch}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -3836,7 +3837,7 @@ The `solidity` module shows the currently installed version of [Solidity](https: | `style` | `'bold blue'` | 這個模組的風格。 | | `disabled` | `false` | Disables this module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -3860,7 +3861,7 @@ The `spack` module shows the current [Spack](https://spack.readthedocs.io/en/lat ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `truncation_length` | `1` | The number of directories the environment path should be truncated to. `0` 表示不截斷 也請參考 [`directory`](#directory)模組 | | `symbol` | `'🅢 '` | 環境名稱前使用的符號。 | @@ -3868,7 +3869,7 @@ The `spack` module shows the current [Spack](https://spack.readthedocs.io/en/lat | `format` | `'via [$symbol$environment]($style) '` | The format for the module. | | `disabled` | `false` | Disables the `spack` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ----------- | ------------ | ------------------------------------ | @@ -3899,7 +3900,7 @@ The `status` module displays the exit code of the previous command. If $success_ ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | --------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | `format` | `'[$symbol$status]($style) '` | The format of the module | | `symbol` | `'❌'` | The symbol displayed on program error | @@ -3917,7 +3918,7 @@ The `status` module displays the exit code of the previous command. If $success_ | `pipestatus_segment_format` | | When specified, replaces `format` when formatting pipestatus segments | | `disabled` | `true` | Disables the `status` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | -------------- | ------- | ------------------------------------------------------------------------------------------ | @@ -3960,7 +3961,7 @@ The `sudo` module displays if sudo credentials are currently cached. The module ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | --------------- | ------------------------ | ------------------------------------------------------- | | `format` | `'[as $symbol]($style)'` | The format of the module | | `symbol` | `'🧙 '` | The symbol displayed when credentials are cached | @@ -3968,7 +3969,7 @@ The `sudo` module displays if sudo credentials are currently cached. The module | `allow_windows` | `false` | Since windows has no default sudo, default is disabled. | | `disabled` | `true` | Disables the `sudo` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -- | ------------------------------------ | @@ -4006,7 +4007,7 @@ By default the `swift` module shows the currently installed version of [Swift](h ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -4017,7 +4018,7 @@ By default the `swift` module shows the currently installed version of [Swift](h | `style` | `'bold 202'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `swift` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -4053,7 +4054,7 @@ By default the module will be shown if any of the following conditions are met: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol$workspace]($style) '` | The format string for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -4064,7 +4065,7 @@ By default the module will be shown if any of the following conditions are met: | `style` | `'bold 105'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `terraform` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------- | ------------------------------------ | @@ -4107,7 +4108,7 @@ format = '[🏎💨 $workspace]($style) ' ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ----------------- | ----------------------- | ----------------------------------------------------------------------------------------------------- | | `format` | `'at [$time]($style) '` | The format string for the module. | | `use_12hr` | `false` | 啟用 12 小時格式。 | @@ -4119,7 +4120,7 @@ format = '[🏎💨 $workspace]($style) ' If `use_12hr` is `true`, then `time_format` defaults to `'%r'`. Otherwise, it defaults to `'%T'`. Manually setting `time_format` will override the `use_12hr` setting. -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------- | ----------------------------------- | @@ -4152,7 +4153,7 @@ By default, the module will be shown if any of the following conditions are met: ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -4163,7 +4164,7 @@ By default, the module will be shown if any of the following conditions are met: | `detect_folders` | `[]` | Which folders should trigger this module. | | `disabled` | `false` | Disables the `daml` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------------- | --------- | ----------------------------------------------- | @@ -4191,7 +4192,7 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------- | ----------------------- | ------------------------------------------- | | `style_root` | `'bold red'` | The style used when the user is root/admin. | | `style_user` | `'bold yellow'` | 非 root 使用者時使用的風格。 | @@ -4199,7 +4200,7 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` | `show_always` | `false` | 總是顯示 `username` 模組。 | | `disabled` | `false` | 停用 `username` 模組。 | -### Variables +### 變數 | 變數 | 範例 | 說明 | | ------- | ------------ | ------------------------------------------------------------------------------------------- | @@ -4227,7 +4228,7 @@ The `vagrant` module shows the currently installed version of [Vagrant](https:// ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -4238,7 +4239,7 @@ The `vagrant` module shows the currently installed version of [Vagrant](https:// | `style` | `'cyan bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `vagrant` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ---------------- | ------------------------------------ | @@ -4266,7 +4267,7 @@ The `vlang` module shows you your currently installed version of [V](https://vla ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | -------------------------------------------- | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -4277,7 +4278,7 @@ The `vlang` module shows you your currently installed version of [V](https://vla | `style` | `'blue bold'` | 這個模組的風格。 | | `disabled` | `false` | Disables the `vlang` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------ | ------------------------------------ | @@ -4299,14 +4300,14 @@ The `vcsh` module displays the current active [VCSH](https://github.com/RichiH/v ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ---------- | -------------------------------- | ------------------------------------------------------ | | `symbol` | `''` | The symbol used before displaying the repository name. | | `style` | `'bold yellow'` | 這個模組的風格。 | | `format` | `'vcsh [$symbol$repo]($style) '` | The format for the module. | | `disabled` | `false` | Disables the `vcsh` module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | ------------------------------------------- | ------------------------------------ | @@ -4333,7 +4334,7 @@ By default the `zig` module shows the currently installed version of [Zig](https ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | @@ -4344,7 +4345,7 @@ By default the `zig` module shows the currently installed version of [Zig](https | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -### Variables +### 變數 | 變數 | 範例 | 說明 | | --------- | -------- | ------------------------------------ | @@ -4403,7 +4404,7 @@ Format strings can also contain shell specific prompt sequences, e.g. [Bash](htt ### 選項 -| Option | 預設 | 說明 | +| 選項 | 預設 | 說明 | | ------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `command` | `''` | The command whose output should be printed. The command will be passed on stdin to the shell. | | `when` | `false` | Either a boolean value (`true` or `false`, without quotes) or a string shell command used as a condition to show the module. In case of a string, the module will be shown if the command returns a `0` status code. | @@ -4421,7 +4422,7 @@ Format strings can also contain shell specific prompt sequences, e.g. [Bash](htt | `use_stdin` | | An optional boolean value that overrides whether commands should be forwarded to the shell via the standard input or as an argument. If unset standard input is used by default, unless the shell does not support it (cmd, nushell). Setting this disables shell-specific argument handling. | | `ignore_timeout` | `false` | Ignore global `command_timeout` setting and keep running external commands, no matter how long they take. | -### Variables +### 變數 | 變數 | 說明 | | --------- | -------------------------------------- | diff --git a/docs/zh-TW/migrating-to-0.45.0/README.md b/docs/zh-TW/migrating-to-0.45.0/README.md index 639fbcf8..410ad6d2 100644 --- a/docs/zh-TW/migrating-to-0.45.0/README.md +++ b/docs/zh-TW/migrating-to-0.45.0/README.md @@ -1,16 +1,16 @@ -# Migrating to v0.45.0 +# 遷移版本至 v0.45.0 -Starship v0.45.0 is a release containing breaking changes, in preparation for the big v1.0.0. We have made some major changes around how configuration is done on the prompt, to allow for a greater degree of customization. +Starship v0.45.0 包含了破壞性的變更,這個變更是為了大的 v1.0.0. 做準備 我們圍繞著如何在提示上完成設定進行了一些重大的更改,以允許更大程度的客製化。 -This guide is intended to walk you through the breaking changes. +這個指南目的在引導您走過一次這些破壞性的變更 -## `prompt_order` has been replaced by a root-level `format` +## `prompt_order` 已經被根層級的 `format` 所取代 -Previously to v0.45.0, `prompt_order` would accept an array of module names in the order which they should be rendered by Starship. +v0.45.0 以前, `prompt_order` 將會依照 Starship 渲染的順序來接受模組名稱的陣列 -Starship v0.45.0 instead accepts a `format` value, allowing for customization of the prompt outside of the modules themselves. +取而代之的是 Starship v0.45.0 會接受 `format` 值,這個值允許在模組本身之外自訂提示 -**Example pre-v0.45.0 configuration** +**pre-v0.45.0 的設定範例** ```toml prompt_order = [ @@ -31,7 +31,7 @@ prompt_order = [ ] ``` -**Example v0.45.0 configuration** +** v0.45.0 的設定範例** ```toml format = """\ @@ -52,20 +52,20 @@ format = """\ """ ``` -## Module `prefix` and `suffix` have been replaced by `format` +## 模組 `prefix` 以及 `suffix` 已經被 `format` 所取代 -Previously to v0.45.0, some modules would accept `prefix` and/or `suffix` in order to stylize the way that modules are rendered. +v0.45.0 版之前,有些模組會接受 `prefix` 且/或 `suffix`,以便使得模組呈現的方式更為風格化 -Starship v0.45.0 instead accepts a `format` value, allowing for further customization of how modules are rendered. Instead of defining a prefix and suffix for the context-based variables, the variables can now be substituted from within a format string, which represents the module's output. +Starship v0.45.0 取而代之的接受了 `format` 的值,允許進一步客製模組的渲染方式 現在可以從表示模組輸出的格式字串中取代變數,而不是基於上下文的變數定義前綴以及後綴 -**Example pre-v0.45.0 configuration** +**pre-v0.45.0 的設定範例** ```toml [cmd_duration] prefix = "took " ``` -**Example v0.45.0 configuration** +** v0.45.0 的設定範例** ```toml [cmd_duration] @@ -74,18 +74,18 @@ prefix = "took " format = "took [$duration]($style) " ``` -### Affected Modules +### 受影響的模組 #### 字元 -| Removed Property | Replacement | +| 已移除的屬性 | 取代屬性 | | ----------------------- | ---------------- | | `symbol` | `success_symbol` | | `use_symbol_for_status` | `error_symbol` | | `style_success` | `success_symbol` | | `style_failure` | `error_symbol` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [character] @@ -98,26 +98,26 @@ format = "took [$duration]($style) " ++ vicmd_symbol = "[❮](bold green)" ``` -Previously, the `use_symbol_for_status` property was used to configure the prompt to show the `error_symbol` when the last command resulted in a non-zero status code. +在之前 `use_symbol_for_status` 屬性會被用於設定提示字元在最後一個指令執行的結果為非 0 的狀態代碼時,會顯示 `error_symbol` -With the release of v0.45.0, we now always use `error_symbol` after non-zero status codes, unifying `use_symbol_for_status` and `error_symbol` properties. +隨著 v0.45.0 版本的發布,我們現在都只會在非零狀態代碼之後使用 `error_symbol`,統一 `use_symbol_for_status` 以及 `error_symbol` 屬性 -To configure the prompt to use the older `use_symbol_for_status = true` configuration, add the following to your config file: +如果要設定提示字元使用舊的 `use_symbol_for_status = true` 設定,請將以下設定加入您的設定檔案中: ```toml [character] error_symbol = "[✖](bold red)" ``` -_Note:_ The `character` element automatically adds a space after, so unlike the other `format` strings, we specifically do not add one in the above examples. +_Note:_ ,`character` 元素會自動附加一個空格, 所以與設定值 `format` 字串不同, 我們上面的例子中刻意沒有加入這個設定 #### 指令持續時間 -| Removed Property | Replacement | -| ---------------- | ----------- | -| `prefix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `prefix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [cmd_duration] @@ -127,11 +127,11 @@ _Note:_ The `character` element automatically adds a space after, so unlike the #### 資料夾 -| Removed Property | Replacement | -| ---------------- | ----------- | -| `prefix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `prefix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [directory] @@ -141,12 +141,12 @@ _Note:_ The `character` element automatically adds a space after, so unlike the #### 環境變數 -| Removed Property | Replacement | -| ---------------- | ----------- | -| `prefix` | `format` | -| `suffix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `prefix` | `format` | +| `suffix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [env_var] @@ -155,14 +155,14 @@ _Note:_ The `character` element automatically adds a space after, so unlike the ++ format = "with [$env_value]($style) " ``` -#### Git Commit +#### Git 提交 -| Removed Property | Replacement | -| ---------------- | ----------- | -| `prefix` | `format` | -| `suffix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `prefix` | `format` | +| `suffix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [git_commit] @@ -171,15 +171,15 @@ _Note:_ The `character` element automatically adds a space after, so unlike the ++ format = '[\($hash\)]($style) ' ``` -#### Git Status +#### Git 狀態 -| Removed Property | Replacement | -| ----------------- | ----------- | -| `prefix` | `format` | -| `suffix` | `format` | -| `show_sync_count` | `format` | +| 已移除的屬性 | 取代屬性 | +| ----------------- | -------- | +| `prefix` | `format` | +| `suffix` | `format` | +| `show_sync_count` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [git_status] @@ -189,11 +189,11 @@ _Note:_ The `character` element automatically adds a space after, so unlike the ++ format = '([\[$all_status$ahead_behind\]]($style) )' ``` -Previously, the `show_sync_count` property was used to configure the prompt to show the number of commits the branch was ahead or behind the remote branch. +在之前的版本 `show_sync_count` 屬性是被用於設定提示字元顯示分之在遠端分支之前或之後所 commit 的數量 -With the release of v0.45.0, this has been replaced with three separate properties, `ahead`, `behind`, and `diverged`. +在 v0.45.0 的版本,這個屬性已經被三個分開的屬性所取代,分別是 `ahead`、`behind` 以及 `diverged` -To configure the prompt to use the older `show_sync_count = true` configuration, set the following to your config file: +為了能夠讓題是字元能夠使用舊的 `show_sync_count = true` 設定,請將以下內容設定至您的設定檔當中 ```toml [git_status] @@ -204,12 +204,12 @@ behind = "⇣${count}" #### 主機名稱 -| Removed Property | Replacement | -| ---------------- | ----------- | -| `prefix` | `format` | -| `suffix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `prefix` | `format` | +| `suffix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [hostname] @@ -220,13 +220,13 @@ behind = "⇣${count}" #### Singularity -| Removed Property | Replacement | -| ---------------- | ----------- | -| `label` | `format` | -| `prefix` | `format` | -| `suffix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `label` | `format` | +| `prefix` | `format` | +| `suffix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [singularity] @@ -237,11 +237,11 @@ behind = "⇣${count}" #### 時間 -| Removed Property | Replacement | -| ---------------- | ------------- | -| `format` | `time_format` | +| 已移除的屬性 | 取代屬性 | +| -------- | ------------- | +| `format` | `time_format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [time] @@ -250,14 +250,14 @@ behind = "⇣${count}" ++ format = "at 🕙[$time]($style) " ``` -#### Custom Commands +#### 自訂指令 -| Removed Property | Replacement | -| ---------------- | ----------- | -| `prefix` | `format` | -| `suffix` | `format` | +| 已移除的屬性 | 取代屬性 | +| -------- | -------- | +| `prefix` | `format` | +| `suffix` | `format` | -**Changes to the Default Configuration** +**預設設定的異動** ```diff [custom.example] From 5fcada26309382c0c9124162ab83e58ad397c26a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 11:00:16 +0000 Subject: [PATCH 155/651] build(deps): update rust crate nix to 0.28.0 --- Cargo.lock | 17 ++++++++++++----- Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f917930b..40e67346 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -392,6 +392,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.34" @@ -1758,9 +1764,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libredox" @@ -1954,12 +1960,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ "bitflags 2.4.1", "cfg-if", + "cfg_aliases", "libc", ] @@ -2852,7 +2859,7 @@ dependencies = [ "indexmap 2.2.3", "log", "mockall", - "nix 0.27.1", + "nix 0.28.0", "notify-rust", "nu-ansi-term", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index f5f8db84..1a9ddc1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -114,7 +114,7 @@ features = [ ] [target.'cfg(not(windows))'.dependencies] -nix = { version = "0.27.1", default-features = false, features = ["feature", "fs", "user"] } +nix = { version = "0.28.0", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] shadow-rs = { version = "0.26.1", default-features = false } From 560c60b8f66016531b2a7119c4372c74fba47da5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 25 Feb 2024 18:20:16 +0000 Subject: [PATCH 156/651] build(deps): update rust crate gix to 0.59.0 --- Cargo.lock | 153 ++++++++++++++++++++++++++++++++--------------------- Cargo.toml | 2 +- 2 files changed, 95 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 40e67346..260c32b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,6 +8,18 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "ahash" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.2" @@ -17,6 +29,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -350,15 +368,6 @@ dependencies = [ "serde", ] -[[package]] -name = "btoi" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" -dependencies = [ - "num-traits", -] - [[package]] name = "bumpalo" version = "3.14.0" @@ -1052,9 +1061,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.58.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31887c304d9a935f3e5494fb5d6a0106c34e965168ec0db9b457424eedd0c741" +checksum = "3888ed07a42651c02060cc35eb0468f4eb99f617b1c02afc990d473b5697ba90" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1093,16 +1102,16 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.30.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7bb9fad6125c81372987c06469601d37e1a2d421511adb69971b9083517a8a" +checksum = "a033a3bac3c31f7afc8aa713677e6296bb4d8801dc4882b8e4e6a163af8611bb" dependencies = [ "bstr", - "btoi", "gix-date", + "gix-utils", "itoa", "thiserror", - "winnow 0.5.31", + "winnow 0.6.0", ] [[package]] @@ -1125,9 +1134,9 @@ dependencies = [ [[package]] name = "gix-commitgraph" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82dbd7fb959862e3df2583331f0ad032ac93533e8a52f1b0694bc517f5d292bc" +checksum = "b27bf9d74c34eca0c5c676087b7309ea5b362809ebcaf7eb90c38b547dac3e9f" dependencies = [ "bstr", "gix-chunk", @@ -1139,9 +1148,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e62bf2073b6ce3921ffa6d8326f645f30eec5fc4a8e8a4bc0fcb721a2f3f69dc" +checksum = "f184a0b16d8872494b58c0f288996ec93b81d8df3a0f364a29e95a07fa61408d" dependencies = [ "bstr", "gix-config-value", @@ -1155,14 +1164,14 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow 0.5.31", + "winnow 0.6.0", ] [[package]] name = "gix-config-value" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e7bfb37a46ed0b8468db37a6d8a0a61d56bdbe4603ae492cb322e5f3958" +checksum = "74ab5d22bc21840f4be0ba2e78df947ba14d8ba6999ea798f86b5bdb999edd0c" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1173,9 +1182,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7f3dfb72bebe3449b5e642be64e3c6ccbe9821c8b8f19f487cf5bfbbf4067e" +checksum = "17077f0870ac12b55d2eed9cb3f56549e40def514c8a783a0a79177a8a76b7c5" dependencies = [ "bstr", "itoa", @@ -1185,9 +1194,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdcb5e49c4b9729dd1c361040ae5c3cd7c497b2260b18c954f62db3a63e98cf" +checksum = "3a3ebedca270c2a5144548cfc22902ad18499b8db0e67c6e96b0cbeb1530f129" dependencies = [ "bstr", "gix-hash", @@ -1197,9 +1206,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4669218f3ec0cbbf8f16857b32200890f8ca585f36f5817242e4115fe4551af" +checksum = "f740b01565662e5bca9cc454d70c4baf5d734a7eb0e0089786e1db8f3a314f6c" dependencies = [ "bstr", "dunce", @@ -1246,9 +1255,9 @@ dependencies = [ [[package]] name = "gix-glob" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4965a1d06d0ab84a29d4a67697a97352ab14ae1da821084e5afb1fd6d8191ca0" +checksum = "e7c050a43e4e5601c99af40d7613957698e7a90a5b33f2a319c3842f9f9dc48b" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1279,14 +1288,14 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7152181ba8f0a3addc5075dd612cea31fc3e252b29c8be8c45f4892bf87426" +checksum = "a1f914963133b6bc2ba81db86facae9a675ba83c38bae2f98ac9f8c0643a8aca" dependencies = [ "bitflags 2.4.1", "bstr", - "btoi", "filetime", + "fnv", "gix-bitmap", "gix-features", "gix-fs", @@ -1294,6 +1303,8 @@ dependencies = [ "gix-lock", "gix-object", "gix-traverse", + "gix-utils", + "hashbrown 0.14.3", "itoa", "libc", "memmap2", @@ -1326,28 +1337,28 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.41.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693ce9d30741506cb082ef2d8b797415b48e032cce0ab23eff894c19a7e4777b" +checksum = "dfe92360506e7228240ee477fd440b82f071d5bb57fb988d7ed8ec17ba348631" dependencies = [ "bstr", - "btoi", "gix-actor", "gix-date", "gix-features", "gix-hash", + "gix-utils", "gix-validate", "itoa", "smallvec", "thiserror", - "winnow 0.5.31", + "winnow 0.6.0", ] [[package]] name = "gix-odb" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba2fa9e81f2461b78b4d81a807867667326c84cdab48e0aed7b73a593aa1be4" +checksum = "a0c84a97c644e99bb6178a867320862597f3ced3b22bd46948f31fcf4990f8a8" dependencies = [ "arc-swap", "gix-date", @@ -1365,9 +1376,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.47.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da5f3e78c96b76c4e6fe5e8e06b76221e4a0ee9a255aa935ed1fdf68988dfd8" +checksum = "bc338331abdf961c6cd19e77ef615fff62cf5da6551a3e9e8042fe621a52ac26" dependencies = [ "clru", "gix-chunk", @@ -1386,9 +1397,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.4" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14a6282621aed1becc3f83d64099a564b3b9063f22783d9a87ea502a3e9f2e40" +checksum = "69e0b521a5c345b7cd6a81e3e6f634407360a038c8b74ba14c621124304251b8" dependencies = [ "bstr", "gix-trace", @@ -1399,20 +1410,20 @@ dependencies = [ [[package]] name = "gix-quote" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7dc10303d73a960d10fb82f81188b036ac3e6b11b5795b20b1a60b51d1321f" +checksum = "4d1b102957d975c6eb56c2b7ad9ac7f26d117299b910812b2e9bf086ec43496d" dependencies = [ "bstr", - "btoi", + "gix-utils", "thiserror", ] [[package]] name = "gix-ref" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5818958994ad7879fa566f5441ebcc48f0926aa027b28948e6fbf6578894dc31" +checksum = "745f66ecfae5d6478c6f6018a556b5aa7567fcbd5781894ade9d4d0f173380aa" dependencies = [ "gix-actor", "gix-date", @@ -1427,14 +1438,14 @@ dependencies = [ "gix-validate", "memmap2", "thiserror", - "winnow 0.5.31", + "winnow 0.6.0", ] [[package]] name = "gix-refspec" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613aa4d93034c5791d13bdc635e530f4ddab1412ddfb4a8215f76213177b61c7" +checksum = "bf9c85581664f38684b7463e133e5b4058992ee7a9f71642289d01f5c5dd2dec" dependencies = [ "bstr", "gix-hash", @@ -1446,9 +1457,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "288f6549d7666db74dc3f169a9a333694fc28ecd2f5aa7b2c979c89eb556751a" +checksum = "8b1d950b5926e7d2a6b84e5ba2955553b086c8aae843239004bec58526e2cf10" dependencies = [ "bstr", "gix-date", @@ -1477,9 +1488,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.4" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8d9bf462feaf05f2121cba7399dbc6c34d88a9cad58fc1e95027791d6a3c6d2" +checksum = "022592a0334bdf77c18c06e12a7c0eaff28845c37e73c51a3e37d56dd495fb35" dependencies = [ "bitflags 2.4.1", "gix-path", @@ -1524,9 +1535,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f1981ecc700f4fd73ae62b9ca2da7c8816c8fd267f0185e3f8c21e967984ac" +checksum = "34db38a818cda121a8b9fea119e1136ba7fb4021b89f30a3449e9873bff84fe8" dependencies = [ "bstr", "gix-features", @@ -1538,9 +1549,9 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e839f3d0798b296411263da6bee780a176ef8008a5dfc31287f7eda9266ab8" +checksum = "60157a15b9f14b11af1c6817ad7a93b10b50b4e5136d98a127c46a37ff16eeb6" dependencies = [ "fastrand 2.0.1", "unicode-normalization", @@ -1579,6 +1590,10 @@ name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", +] [[package]] name = "heck" @@ -3778,6 +3793,26 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.46", +] + [[package]] name = "zvariant" version = "3.15.0" diff --git a/Cargo.toml b/Cargo.toml index 1a9ddc1b..eef4dc82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.58.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix = { version = "0.59.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } indexmap = { version = "2.2.3", features = ["serde"] } log = { version = "0.4.20", features = ["std"] } From aaaf3d82e8391140573f7974aa619bb250cd2402 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 01:25:16 +0000 Subject: [PATCH 157/651] build(deps): update dprint plugins --- .dprint.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.dprint.json b/.dprint.json index 1dced25c..1ff7dd68 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,9 +25,9 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.89.1/plugin.wasm", - "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.1/plugin.wasm", - "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.3/plugin.wasm", - "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.0/plugin.wasm" + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.89.3/plugin.wasm", + "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", + "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.4/plugin.wasm", + "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" ] } From 6a96e84a15e3ea598356e4fcad23ac4b2690dd1e Mon Sep 17 00:00:00 2001 From: Fraser Li Date: Mon, 26 Feb 2024 22:21:00 +1100 Subject: [PATCH 158/651] fix(git_branch): fall back to "HEAD" when there is no current branch (#5768) * fix(git_branch): fall back to "HEAD" when there is no current branch * test(git_branch): add test for branch fallback on detached HEAD --- src/modules/git_branch.rs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/modules/git_branch.rs b/src/modules/git_branch.rs index f57b8657..cda4065c 100644 --- a/src/modules/git_branch.rs +++ b/src/modules/git_branch.rs @@ -30,13 +30,13 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; } - let branch_name = repo.branch.as_ref()?; + let branch_name = repo.branch.as_deref().unwrap_or("HEAD"); let mut graphemes: Vec<&str> = branch_name.graphemes(true).collect(); if config .ignore_branches .iter() - .any(|ignored| branch_name.eq(ignored)) + .any(|&ignored| branch_name.eq(ignored)) { return None; } @@ -428,6 +428,29 @@ mod tests { remote_dir.close() } + #[test] + fn test_branch_fallback_on_detached() -> io::Result<()> { + let repo_dir = fixture_repo(FixtureProvider::Git)?; + + create_command("git")? + .args(["checkout", "@~1"]) + .current_dir(repo_dir.path()) + .output()?; + + let actual = ModuleRenderer::new("git_branch") + .config(toml::toml! { + [git_branch] + format = "$branch" + }) + .path(repo_dir.path()) + .collect(); + + let expected = Some("HEAD".into()); + + assert_eq!(expected, actual); + repo_dir.close() + } + // This test is not possible until we switch to `git status --porcelain` // where we can mock the env for the specific git process. This is because // git2 does not care about our mocking and when we set the real `GIT_DIR` From c3e078cbf3e3e0dd3e82659418c65f95e5282382 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 23:17:05 +0000 Subject: [PATCH 159/651] build(deps): update rust crate tempfile to 3.10.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 260c32b4..9d8fd10b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2990,9 +2990,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand 2.0.1", diff --git a/Cargo.toml b/Cargo.toml index eef4dc82..a8276ee0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,7 +125,7 @@ winres = "0.1.12" [dev-dependencies] mockall = "0.12" -tempfile = "3.10.0" +tempfile = "3.10.1" [profile.release] codegen-units = 1 From f505ceb757fde14aa3c3fa778610e50126a8f646 Mon Sep 17 00:00:00 2001 From: nataziel <114114079+nataziel@users.noreply.github.com> Date: Tue, 27 Feb 2024 18:20:32 +1000 Subject: [PATCH 160/651] docs(preset): add Jetpack to presets/README.md (#5797) --- docs/presets/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/presets/README.md b/docs/presets/README.md index 6d6fbd9b..1259b884 100644 --- a/docs/presets/README.md +++ b/docs/presets/README.md @@ -74,3 +74,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) From 3727754c21a77d5378f095d9cade76a139c5ac7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 22:26:48 +0000 Subject: [PATCH 161/651] build(deps): update rust crate windows to 0.54.0 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9d8fd10b..1d07bc4b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2908,7 +2908,7 @@ dependencies = [ "urlencoding", "versions", "which", - "windows 0.53.0", + "windows 0.54.0", "winres", "yaml-rust", ] @@ -3513,11 +3513,11 @@ dependencies = [ [[package]] name = "windows" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" dependencies = [ - "windows-core 0.53.0", + "windows-core 0.54.0", "windows-targets 0.52.3", ] @@ -3532,9 +3532,9 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.53.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ "windows-result", "windows-targets 0.52.3", diff --git a/Cargo.toml b/Cargo.toml index a8276ee0..99e17ac7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,7 +104,7 @@ features = ["preserve_order", "indexmap2"] deelevate = "0.2.0" [target.'cfg(windows)'.dependencies.windows] -version = "0.53.0" +version = "0.54.0" features = [ "Win32_Foundation", "Win32_UI_Shell", From 28eb8c8e115170feda5d7fd2726b93896a67610e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 01:44:46 +0000 Subject: [PATCH 162/651] build(deps): update rust crate rayon to 1.9.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1d07bc4b..db0f3f62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2481,9 +2481,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", diff --git a/Cargo.toml b/Cargo.toml index 99e17ac7..48947022 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,7 +66,7 @@ pest = "2.7.7" pest_derive = "2.7.7" quick-xml = "0.31.0" rand = "0.8.5" -rayon = "1.8.1" +rayon = "1.9.0" regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.20.0" semver = "1.0.22" From 9a06fc770870d27826052c5352e4573f85362826 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 06:52:16 +0000 Subject: [PATCH 163/651] build(deps): update rust crate open to 5.0.2 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db0f3f62..be501249 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2099,9 +2099,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "5.0.1" +version = "5.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349" +checksum = "eedff767bc49d336bff300224f73307ae36963c843e38dc9312a22171b012cbc" dependencies = [ "is-wsl", "libc", diff --git a/Cargo.toml b/Cargo.toml index 48947022..6b7b5a8f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,7 @@ log = { version = "0.4.20", features = ["std"] } notify-rust = { version = "4.10.0", optional = true } nu-ansi-term = "0.50.0" once_cell = "1.19.0" -open = "5.0.1" +open = "5.0.2" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" From 49b5e1cfb1733c4a9c97f60400d85c79a1e01c24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 01:11:04 +0000 Subject: [PATCH 164/651] build(deps): update rust crate log to 0.4.21 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index be501249..f66f1ba1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1845,9 +1845,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "mac-notification-sys" diff --git a/Cargo.toml b/Cargo.toml index 6b7b5a8f..a829e655 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ gethostname = "0.4.3" gix = { version = "0.59.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } indexmap = { version = "2.2.3", features = ["serde"] } -log = { version = "0.4.20", features = ["std"] } +log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 notify-rust = { version = "4.10.0", optional = true } From ef8171a3d5d2ce86118db853f3d079c6f16fb71f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 04:12:32 +0000 Subject: [PATCH 165/651] build(deps): update rust crate indexmap to 2.2.4 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f66f1ba1..c9e3b5aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1668,9 +1668,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "967d6dd42f16dbf0eb8040cb9e477933562684d3918f7d253f2ff9087fb3e7a3" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2608,7 +2608,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.2.3", + "indexmap 2.2.4", "schemars_derive", "serde", "serde_json", @@ -2871,7 +2871,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.2.3", + "indexmap 2.2.4", "log", "mockall", "nix 0.28.0", @@ -3160,7 +3160,7 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.4", "serde", "serde_spanned", "toml_datetime", @@ -3182,7 +3182,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.4", "toml_datetime", "winnow 0.5.31", ] @@ -3193,7 +3193,7 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.4", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index a829e655..04b4f693 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.59.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } -indexmap = { version = "2.2.3", features = ["serde"] } +indexmap = { version = "2.2.4", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From f38bf826a422f5fa1acde252fa175a2076d05bef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 20:44:46 +0000 Subject: [PATCH 166/651] build(deps): update rust crate indexmap to 2.2.5 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c9e3b5aa..f15703b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1668,9 +1668,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.4" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "967d6dd42f16dbf0eb8040cb9e477933562684d3918f7d253f2ff9087fb3e7a3" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2608,7 +2608,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.2.4", + "indexmap 2.2.5", "schemars_derive", "serde", "serde_json", @@ -2871,7 +2871,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.2.4", + "indexmap 2.2.5", "log", "mockall", "nix 0.28.0", @@ -3160,7 +3160,7 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ - "indexmap 2.2.4", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", @@ -3182,7 +3182,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.4", + "indexmap 2.2.5", "toml_datetime", "winnow 0.5.31", ] @@ -3193,7 +3193,7 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ - "indexmap 2.2.4", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index 04b4f693..8b52cff7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.59.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.0", optional = true } -indexmap = { version = "2.2.4", features = ["serde"] } +indexmap = { version = "2.2.5", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From a9713e726e142bea475d31d024cb96a178fa912e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 14:22:33 +0000 Subject: [PATCH 167/651] build(deps): update pest crates to 2.7.8 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f15703b2..dc98462d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2207,9 +2207,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" dependencies = [ "memchr", "thiserror", @@ -2218,9 +2218,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" dependencies = [ "pest", "pest_generator", @@ -2228,9 +2228,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" dependencies = [ "pest", "pest_meta", @@ -2241,9 +2241,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" dependencies = [ "once_cell", "pest", diff --git a/Cargo.toml b/Cargo.toml index 8b52cff7..574e97fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ open = "5.0.2" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" -pest = "2.7.7" -pest_derive = "2.7.7" +pest = "2.7.8" +pest_derive = "2.7.8" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.9.0" From a7038a73dae0e26d68ddd5192a84e0ae1e9a68e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 14:22:36 +0000 Subject: [PATCH 168/651] build(deps): update crate-ci/typos action to v1.19.0 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 2348e3b5..50326c5f 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.18.2 + - uses: crate-ci/typos@v1.19.0 From a8e7968319697d77355543215c7f2c0e94924087 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 16:41:21 +0000 Subject: [PATCH 169/651] build(deps): update rust crate open to 5.1.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc98462d..e152d7e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2099,9 +2099,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "5.0.2" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eedff767bc49d336bff300224f73307ae36963c843e38dc9312a22171b012cbc" +checksum = "1f2588edf622de56e7a1fed57bf203344f63c03f3d43472ba0434a92373c8f27" dependencies = [ "is-wsl", "libc", diff --git a/Cargo.toml b/Cargo.toml index 574e97fa..4551e7ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,7 @@ log = { version = "0.4.21", features = ["std"] } notify-rust = { version = "4.10.0", optional = true } nu-ansi-term = "0.50.0" once_cell = "1.19.0" -open = "5.0.2" +open = "5.1.0" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" From 421b358c32aa281b0f34f8b92322f3bda27684fa Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Mon, 4 Mar 2024 01:54:51 +0900 Subject: [PATCH 170/651] docs(i18n): new Crowdin updates (#5803) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) --- docs/ar-SA/presets/README.md | 6 ++++++ docs/bn-BD/presets/README.md | 6 ++++++ docs/ckb-IR/presets/README.md | 6 ++++++ docs/de-DE/presets/README.md | 6 ++++++ docs/es-ES/presets/README.md | 6 ++++++ docs/fr-FR/presets/README.md | 6 ++++++ docs/id-ID/presets/README.md | 6 ++++++ docs/it-IT/presets/README.md | 6 ++++++ docs/ja-JP/presets/README.md | 6 ++++++ docs/ko-KR/presets/README.md | 6 ++++++ docs/nl-NL/presets/README.md | 6 ++++++ docs/no-NO/presets/README.md | 6 ++++++ docs/pl-PL/presets/README.md | 6 ++++++ docs/pt-BR/presets/README.md | 6 ++++++ docs/pt-PT/presets/README.md | 6 ++++++ docs/ru-RU/presets/README.md | 6 ++++++ docs/tr-TR/presets/README.md | 6 ++++++ docs/uk-UA/presets/README.md | 6 ++++++ docs/vi-VN/presets/README.md | 6 ++++++ docs/zh-CN/presets/README.md | 6 ++++++ docs/zh-TW/presets/README.md | 6 ++++++ 21 files changed, 126 insertions(+) diff --git a/docs/ar-SA/presets/README.md b/docs/ar-SA/presets/README.md index 2e332ad1..7a4a5b25 100644 --- a/docs/ar-SA/presets/README.md +++ b/docs/ar-SA/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/bn-BD/presets/README.md b/docs/bn-BD/presets/README.md index 2e332ad1..7a4a5b25 100644 --- a/docs/bn-BD/presets/README.md +++ b/docs/bn-BD/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/ckb-IR/presets/README.md b/docs/ckb-IR/presets/README.md index 0e31d455..a85010a3 100644 --- a/docs/ckb-IR/presets/README.md +++ b/docs/ckb-IR/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/de-DE/presets/README.md b/docs/de-DE/presets/README.md index ca52d7e8..af7699f5 100644 --- a/docs/de-DE/presets/README.md +++ b/docs/de-DE/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t Diese Voreinstellung ist stark inspiriert von [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot von Gruvbox Regenbogen](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/es-ES/presets/README.md b/docs/es-ES/presets/README.md index 3a6e96f1..06400441 100644 --- a/docs/es-ES/presets/README.md +++ b/docs/es-ES/presets/README.md @@ -69,3 +69,9 @@ Este preset está inspirado en [tokyo-night-vscode-theme](https://github.com/enk Este preajuste está muy inspirado en [Pastel Powerline](./pastel-powerline.md) y [Tokyo Night](./tokyo-night.md). [![Captura de pantalla de el preajuste Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Clic para ver el preajuste Gruvbox Rainbow")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +Este es un preajuste pseudominimalista inspirado en las indicaciones [geometría](https://github.com/geometry-zsh/geometry) y [nave espacial](https://github.com/spaceship-prompt/spaceship-prompt). + +[![Captura de pantalla del preajuste Jetpack](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/fr-FR/presets/README.md b/docs/fr-FR/presets/README.md index 11b18e52..85597fdc 100644 --- a/docs/fr-FR/presets/README.md +++ b/docs/fr-FR/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/id-ID/presets/README.md b/docs/id-ID/presets/README.md index 29c180d1..9e208674 100644 --- a/docs/id-ID/presets/README.md +++ b/docs/id-ID/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/it-IT/presets/README.md b/docs/it-IT/presets/README.md index b5e07764..d29b9805 100644 --- a/docs/it-IT/presets/README.md +++ b/docs/it-IT/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/ja-JP/presets/README.md b/docs/ja-JP/presets/README.md index 0eebf1a3..0cbdece9 100644 --- a/docs/ja-JP/presets/README.md +++ b/docs/ja-JP/presets/README.md @@ -69,3 +69,9 @@ This preset does not show icons if the toolset is not found. This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/ko-KR/presets/README.md b/docs/ko-KR/presets/README.md index 7d41e37c..bc7e4faf 100644 --- a/docs/ko-KR/presets/README.md +++ b/docs/ko-KR/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [M365Princess](https://github.com/JanDeDobbeleer/oh-m 이 프리셋은 [Pastel Powerline](./pastel-powerline.md) 및 [Tokyo Night](./tokyo-night.md)에서 강하게 영감을 받았습니다. [![Gruvbox Rainbow 프리셋 스크린샷](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/nl-NL/presets/README.md b/docs/nl-NL/presets/README.md index 2e332ad1..7a4a5b25 100644 --- a/docs/nl-NL/presets/README.md +++ b/docs/nl-NL/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/no-NO/presets/README.md b/docs/no-NO/presets/README.md index 2e332ad1..7a4a5b25 100644 --- a/docs/no-NO/presets/README.md +++ b/docs/no-NO/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/pl-PL/presets/README.md b/docs/pl-PL/presets/README.md index 5bb82d8e..cda51a76 100644 --- a/docs/pl-PL/presets/README.md +++ b/docs/pl-PL/presets/README.md @@ -69,3 +69,9 @@ Ten zestaw ustawień jest inspirowany [tokyo-night-vscode-theme](https://github. Zestaw mocno inspirowany przez [Pastel Powerline](./pastel-powerline.md) i [Tokyo Night](./tokyo-night.md). [![Zrzut ekranu ustawień Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Kliknij, aby wyświetlić ustawienia Gruvbox Rainbow")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/pt-BR/presets/README.md b/docs/pt-BR/presets/README.md index 0d58e994..9bbae2df 100644 --- a/docs/pt-BR/presets/README.md +++ b/docs/pt-BR/presets/README.md @@ -69,3 +69,9 @@ Este preset é inspirado por [tokyo-night-vscode-theme](https://github.com/enki This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/pt-PT/presets/README.md b/docs/pt-PT/presets/README.md index 2e332ad1..7a4a5b25 100644 --- a/docs/pt-PT/presets/README.md +++ b/docs/pt-PT/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/ru-RU/presets/README.md b/docs/ru-RU/presets/README.md index a20991e9..2821e763 100644 --- a/docs/ru-RU/presets/README.md +++ b/docs/ru-RU/presets/README.md @@ -69,3 +69,9 @@ Этот пресет в значительной степени вдохновлен [Pastel Powerline](./pastel-powerline.md) и [Tokyo Night](./tokyo-night.md). [![Скриншот пресета Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Нажмите, чтобы просмотреть пресет Gruvbox Rainbow")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +Это псевдоминималистичный пресет, вдохновленный приглашениями командной оболочки [geometry](https://github.com/geometry-zsh/geometry) и [spaceship](https://github.com/spaceship-prompt/spaceship-prompt). + +[![Скриншот пресета Jetpack](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/tr-TR/presets/README.md b/docs/tr-TR/presets/README.md index 1c20e038..bd1cf914 100644 --- a/docs/tr-TR/presets/README.md +++ b/docs/tr-TR/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/uk-UA/presets/README.md b/docs/uk-UA/presets/README.md index e1dc7d3c..5759c56d 100644 --- a/docs/uk-UA/presets/README.md +++ b/docs/uk-UA/presets/README.md @@ -69,3 +69,9 @@ Цей шаблон створено під впливом [Pastel Powerline](./pastel-powerline.md) та [Tokyo Night](./tokyo-night.md). [![Скріншот шаблона Gruvbox Rainbow](/presets/img/gruvbox-rainbow.png "Натисніть, щоб переглянути шаблон Gruvbox Rainbow")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +Цей псевдомінімалістичний шаблон створений під враженням від [geometry](https://github.com/geometry-zsh/geometry) та [spaceship](https://github.com/spaceship-prompt/spaceship-prompt). + +[![Скріншот шаблона Jetpack](/presets/img/jetpack.png "Натисніть для перегляду шаблона Jetpack")](./jetpack) diff --git a/docs/vi-VN/presets/README.md b/docs/vi-VN/presets/README.md index ea3f1b6f..3869b988 100644 --- a/docs/vi-VN/presets/README.md +++ b/docs/vi-VN/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/zh-CN/presets/README.md b/docs/zh-CN/presets/README.md index 1bec89ef..a7953fd0 100644 --- a/docs/zh-CN/presets/README.md +++ b/docs/zh-CN/presets/README.md @@ -69,3 +69,9 @@ This preset does not show icons if the toolset is not found. This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) diff --git a/docs/zh-TW/presets/README.md b/docs/zh-TW/presets/README.md index 0e6678b3..788c3b49 100644 --- a/docs/zh-TW/presets/README.md +++ b/docs/zh-TW/presets/README.md @@ -69,3 +69,9 @@ This preset is inspired by [tokyo-night-vscode-theme](https://github.com/enkia/t This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). [![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) + +## [Jetpack](./jetpack.md) + +This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. + +[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) From 7485c90c9f7259c026a84dd0335f56860005315d Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 3 Mar 2024 17:55:30 +0100 Subject: [PATCH 171/651] feat(docs): move to vitepress (#5785) * feat(docs): move to vitepress * change up hero styles to match existing site * A bit more style tweaking * Replace stylus with plain CSS * improve unicode-range value for nerdfont --------- Co-authored-by: Matan Kushner --- .github/workflows/format-workflow.yml | 23 + .github/workflows/publish-docs.yml | 6 +- .github/workflows/release.yml | 4 +- .gitignore | 5 +- CONTRIBUTING.md | 6 +- build.rs | 4 +- .../config.ts => .vitepress/config.mts} | 565 +- docs/.vitepress/theme/index.css | 97 + docs/.vitepress/theme/index.js | 4 + docs/.vuepress/public/config-schema.json | 1 - docs/.vuepress/public/icon.png | 1 - docs/.vuepress/public/install.sh | 1 - docs/.vuepress/public/logo.png | 1 - docs/.vuepress/public/logo.svg | 1 - docs/.vuepress/public/nerd-font.woff2 | Bin 378316 -> 0 bytes docs/.vuepress/styles/index.styl | 38 - docs/.vuepress/styles/palette.styl | 6 - docs/README.md | 27 +- docs/advanced-config/README.md | 2 +- docs/ar-SA/README.md | 21 +- docs/ar-SA/advanced-config/README.md | 2 +- docs/ar-SA/config/README.md | 6 +- docs/ar-SA/faq/README.md | 2 +- docs/ar-SA/guide/README.md | 6 +- docs/ar-SA/installing/README.md | 2 +- docs/ar-SA/presets/bracketed-segments.md | 4 +- docs/ar-SA/presets/gruvbox-rainbow.md | 4 +- docs/ar-SA/presets/jetpack.md | 4 +- docs/ar-SA/presets/nerd-font.md | 4 +- docs/ar-SA/presets/no-empty-icons.md | 4 +- docs/ar-SA/presets/no-nerd-font.md | 4 +- docs/ar-SA/presets/no-runtimes.md | 4 +- docs/ar-SA/presets/pastel-powerline.md | 4 +- docs/ar-SA/presets/plain-text.md | 4 +- docs/ar-SA/presets/pure-preset.md | 4 +- docs/ar-SA/presets/tokyo-night.md | 4 +- docs/bn-BD/README.md | 21 +- docs/bn-BD/advanced-config/README.md | 2 +- docs/bn-BD/config/README.md | 6 +- docs/bn-BD/faq/README.md | 2 +- docs/bn-BD/guide/README.md | 8 +- docs/bn-BD/installing/README.md | 2 +- docs/bn-BD/presets/bracketed-segments.md | 4 +- docs/bn-BD/presets/gruvbox-rainbow.md | 4 +- docs/bn-BD/presets/jetpack.md | 4 +- docs/bn-BD/presets/nerd-font.md | 4 +- docs/bn-BD/presets/no-empty-icons.md | 4 +- docs/bn-BD/presets/no-nerd-font.md | 4 +- docs/bn-BD/presets/no-runtimes.md | 4 +- docs/bn-BD/presets/pastel-powerline.md | 4 +- docs/bn-BD/presets/plain-text.md | 4 +- docs/bn-BD/presets/pure-preset.md | 4 +- docs/bn-BD/presets/tokyo-night.md | 4 +- docs/ckb-IR/README.md | 21 +- docs/ckb-IR/advanced-config/README.md | 2 +- docs/ckb-IR/config/README.md | 6 +- docs/ckb-IR/faq/README.md | 2 +- docs/ckb-IR/guide/README.md | 4 +- docs/ckb-IR/installing/README.md | 2 +- docs/ckb-IR/presets/bracketed-segments.md | 4 +- docs/ckb-IR/presets/gruvbox-rainbow.md | 4 +- docs/ckb-IR/presets/jetpack.md | 4 +- docs/ckb-IR/presets/nerd-font.md | 4 +- docs/ckb-IR/presets/no-empty-icons.md | 4 +- docs/ckb-IR/presets/no-nerd-font.md | 4 +- docs/ckb-IR/presets/no-runtimes.md | 4 +- docs/ckb-IR/presets/pastel-powerline.md | 4 +- docs/ckb-IR/presets/plain-text.md | 4 +- docs/ckb-IR/presets/pure-preset.md | 4 +- docs/ckb-IR/presets/tokyo-night.md | 4 +- docs/config/README.md | 22 +- docs/de-DE/README.md | 21 +- docs/de-DE/advanced-config/README.md | 2 +- docs/de-DE/config/README.md | 6 +- docs/de-DE/faq/README.md | 2 +- docs/de-DE/guide/README.md | 6 +- docs/de-DE/installing/README.md | 2 +- docs/de-DE/presets/bracketed-segments.md | 4 +- docs/de-DE/presets/gruvbox-rainbow.md | 4 +- docs/de-DE/presets/jetpack.md | 4 +- docs/de-DE/presets/nerd-font.md | 4 +- docs/de-DE/presets/no-empty-icons.md | 4 +- docs/de-DE/presets/no-nerd-font.md | 4 +- docs/de-DE/presets/no-runtimes.md | 4 +- docs/de-DE/presets/pastel-powerline.md | 4 +- docs/de-DE/presets/plain-text.md | 4 +- docs/de-DE/presets/pure-preset.md | 4 +- docs/de-DE/presets/tokyo-night.md | 4 +- docs/es-ES/README.md | 21 +- docs/es-ES/advanced-config/README.md | 2 +- docs/es-ES/config/README.md | 30 +- docs/es-ES/faq/README.md | 2 +- docs/es-ES/guide/README.md | 6 +- docs/es-ES/installing/README.md | 2 +- docs/es-ES/presets/bracketed-segments.md | 4 +- docs/es-ES/presets/gruvbox-rainbow.md | 4 +- docs/es-ES/presets/jetpack.md | 4 +- docs/es-ES/presets/nerd-font.md | 4 +- docs/es-ES/presets/no-empty-icons.md | 4 +- docs/es-ES/presets/no-nerd-font.md | 4 +- docs/es-ES/presets/no-runtimes.md | 4 +- docs/es-ES/presets/pastel-powerline.md | 4 +- docs/es-ES/presets/plain-text.md | 4 +- docs/es-ES/presets/pure-preset.md | 4 +- docs/es-ES/presets/tokyo-night.md | 4 +- docs/faq/README.md | 2 +- docs/fr-FR/README.md | 21 +- docs/fr-FR/advanced-config/README.md | 2 +- docs/fr-FR/config/README.md | 6 +- docs/fr-FR/faq/README.md | 2 +- docs/fr-FR/guide/README.md | 6 +- docs/fr-FR/installing/README.md | 2 +- docs/fr-FR/presets/bracketed-segments.md | 4 +- docs/fr-FR/presets/gruvbox-rainbow.md | 4 +- docs/fr-FR/presets/jetpack.md | 4 +- docs/fr-FR/presets/nerd-font.md | 4 +- docs/fr-FR/presets/no-empty-icons.md | 4 +- docs/fr-FR/presets/no-nerd-font.md | 4 +- docs/fr-FR/presets/no-runtimes.md | 4 +- docs/fr-FR/presets/pastel-powerline.md | 4 +- docs/fr-FR/presets/plain-text.md | 4 +- docs/fr-FR/presets/pure-preset.md | 4 +- docs/fr-FR/presets/tokyo-night.md | 4 +- docs/id-ID/README.md | 21 +- docs/id-ID/advanced-config/README.md | 2 +- docs/id-ID/config/README.md | 6 +- docs/id-ID/faq/README.md | 2 +- docs/id-ID/guide/README.md | 6 +- docs/id-ID/installing/README.md | 2 +- docs/id-ID/presets/bracketed-segments.md | 4 +- docs/id-ID/presets/gruvbox-rainbow.md | 4 +- docs/id-ID/presets/jetpack.md | 4 +- docs/id-ID/presets/nerd-font.md | 4 +- docs/id-ID/presets/no-empty-icons.md | 4 +- docs/id-ID/presets/no-nerd-font.md | 4 +- docs/id-ID/presets/no-runtimes.md | 4 +- docs/id-ID/presets/pastel-powerline.md | 4 +- docs/id-ID/presets/plain-text.md | 4 +- docs/id-ID/presets/pure-preset.md | 4 +- docs/id-ID/presets/tokyo-night.md | 4 +- docs/installing/README.md | 2 +- docs/it-IT/README.md | 21 +- docs/it-IT/advanced-config/README.md | 2 +- docs/it-IT/config/README.md | 6 +- docs/it-IT/faq/README.md | 2 +- docs/it-IT/guide/README.md | 2 +- docs/it-IT/installing/README.md | 2 +- docs/it-IT/presets/bracketed-segments.md | 4 +- docs/it-IT/presets/gruvbox-rainbow.md | 4 +- docs/it-IT/presets/jetpack.md | 4 +- docs/it-IT/presets/nerd-font.md | 4 +- docs/it-IT/presets/no-empty-icons.md | 4 +- docs/it-IT/presets/no-nerd-font.md | 4 +- docs/it-IT/presets/no-runtimes.md | 4 +- docs/it-IT/presets/pastel-powerline.md | 4 +- docs/it-IT/presets/plain-text.md | 4 +- docs/it-IT/presets/pure-preset.md | 4 +- docs/it-IT/presets/tokyo-night.md | 4 +- docs/ja-JP/README.md | 21 +- docs/ja-JP/advanced-config/README.md | 2 +- docs/ja-JP/config/README.md | 6 +- docs/ja-JP/faq/README.md | 2 +- docs/ja-JP/guide/README.md | 6 +- docs/ja-JP/installing/README.md | 2 +- docs/ja-JP/presets/bracketed-segments.md | 4 +- docs/ja-JP/presets/gruvbox-rainbow.md | 4 +- docs/ja-JP/presets/jetpack.md | 4 +- docs/ja-JP/presets/nerd-font.md | 4 +- docs/ja-JP/presets/no-empty-icons.md | 4 +- docs/ja-JP/presets/no-nerd-font.md | 4 +- docs/ja-JP/presets/no-runtimes.md | 4 +- docs/ja-JP/presets/pastel-powerline.md | 4 +- docs/ja-JP/presets/plain-text.md | 4 +- docs/ja-JP/presets/pure-preset.md | 4 +- docs/ja-JP/presets/tokyo-night.md | 4 +- docs/ko-KR/README.md | 21 +- docs/ko-KR/advanced-config/README.md | 2 +- docs/ko-KR/config/README.md | 6 +- docs/ko-KR/faq/README.md | 2 +- docs/ko-KR/guide/README.md | 6 +- docs/ko-KR/installing/README.md | 2 +- docs/ko-KR/presets/bracketed-segments.md | 4 +- docs/ko-KR/presets/gruvbox-rainbow.md | 4 +- docs/ko-KR/presets/jetpack.md | 4 +- docs/ko-KR/presets/nerd-font.md | 4 +- docs/ko-KR/presets/no-empty-icons.md | 4 +- docs/ko-KR/presets/no-nerd-font.md | 4 +- docs/ko-KR/presets/no-runtimes.md | 4 +- docs/ko-KR/presets/pastel-powerline.md | 4 +- docs/ko-KR/presets/plain-text.md | 4 +- docs/ko-KR/presets/pure-preset.md | 4 +- docs/ko-KR/presets/tokyo-night.md | 4 +- docs/nl-NL/README.md | 21 +- docs/nl-NL/advanced-config/README.md | 2 +- docs/nl-NL/config/README.md | 6 +- docs/nl-NL/faq/README.md | 2 +- docs/nl-NL/guide/README.md | 6 +- docs/nl-NL/installing/README.md | 2 +- docs/nl-NL/presets/bracketed-segments.md | 4 +- docs/nl-NL/presets/gruvbox-rainbow.md | 4 +- docs/nl-NL/presets/jetpack.md | 4 +- docs/nl-NL/presets/nerd-font.md | 4 +- docs/nl-NL/presets/no-empty-icons.md | 4 +- docs/nl-NL/presets/no-nerd-font.md | 4 +- docs/nl-NL/presets/no-runtimes.md | 4 +- docs/nl-NL/presets/pastel-powerline.md | 4 +- docs/nl-NL/presets/plain-text.md | 4 +- docs/nl-NL/presets/pure-preset.md | 4 +- docs/nl-NL/presets/tokyo-night.md | 4 +- docs/no-NO/README.md | 21 +- docs/no-NO/advanced-config/README.md | 2 +- docs/no-NO/config/README.md | 6 +- docs/no-NO/faq/README.md | 2 +- docs/no-NO/guide/README.md | 6 +- docs/no-NO/installing/README.md | 2 +- docs/no-NO/presets/bracketed-segments.md | 4 +- docs/no-NO/presets/gruvbox-rainbow.md | 4 +- docs/no-NO/presets/jetpack.md | 4 +- docs/no-NO/presets/nerd-font.md | 4 +- docs/no-NO/presets/no-empty-icons.md | 4 +- docs/no-NO/presets/no-nerd-font.md | 4 +- docs/no-NO/presets/no-runtimes.md | 4 +- docs/no-NO/presets/pastel-powerline.md | 4 +- docs/no-NO/presets/plain-text.md | 4 +- docs/no-NO/presets/pure-preset.md | 4 +- docs/no-NO/presets/tokyo-night.md | 4 +- docs/package-lock.json | 27954 +--------------- docs/package.json | 10 +- docs/pl-PL/README.md | 21 +- docs/pl-PL/advanced-config/README.md | 2 +- docs/pl-PL/config/README.md | 6 +- docs/pl-PL/faq/README.md | 2 +- docs/pl-PL/guide/README.md | 6 +- docs/pl-PL/installing/README.md | 2 +- docs/pl-PL/presets/bracketed-segments.md | 4 +- docs/pl-PL/presets/gruvbox-rainbow.md | 4 +- docs/pl-PL/presets/jetpack.md | 4 +- docs/pl-PL/presets/nerd-font.md | 4 +- docs/pl-PL/presets/no-empty-icons.md | 4 +- docs/pl-PL/presets/no-nerd-font.md | 4 +- docs/pl-PL/presets/no-runtimes.md | 4 +- docs/pl-PL/presets/pastel-powerline.md | 4 +- docs/pl-PL/presets/plain-text.md | 4 +- docs/pl-PL/presets/pure-preset.md | 4 +- docs/pl-PL/presets/tokyo-night.md | 4 +- docs/presets/bracketed-segments.md | 4 +- docs/presets/gruvbox-rainbow.md | 4 +- docs/presets/jetpack.md | 4 +- docs/presets/nerd-font.md | 4 +- docs/presets/no-empty-icons.md | 4 +- docs/presets/no-nerd-font.md | 4 +- docs/presets/no-runtimes.md | 4 +- docs/presets/pastel-powerline.md | 4 +- docs/presets/plain-text.md | 4 +- docs/presets/pure-preset.md | 4 +- docs/presets/tokyo-night.md | 4 +- docs/pt-BR/README.md | 21 +- docs/pt-BR/advanced-config/README.md | 2 +- docs/pt-BR/config/README.md | 8 +- docs/pt-BR/faq/README.md | 2 +- docs/pt-BR/guide/README.md | 6 +- docs/pt-BR/installing/README.md | 2 +- docs/pt-BR/presets/bracketed-segments.md | 4 +- docs/pt-BR/presets/gruvbox-rainbow.md | 4 +- docs/pt-BR/presets/jetpack.md | 4 +- docs/pt-BR/presets/nerd-font.md | 4 +- docs/pt-BR/presets/no-empty-icons.md | 4 +- docs/pt-BR/presets/no-nerd-font.md | 4 +- docs/pt-BR/presets/no-runtimes.md | 4 +- docs/pt-BR/presets/pastel-powerline.md | 4 +- docs/pt-BR/presets/plain-text.md | 4 +- docs/pt-BR/presets/pure-preset.md | 4 +- docs/pt-BR/presets/tokyo-night.md | 4 +- docs/pt-PT/README.md | 21 +- docs/pt-PT/advanced-config/README.md | 2 +- docs/pt-PT/config/README.md | 6 +- docs/pt-PT/faq/README.md | 2 +- docs/pt-PT/guide/README.md | 6 +- docs/pt-PT/installing/README.md | 2 +- docs/pt-PT/presets/bracketed-segments.md | 4 +- docs/pt-PT/presets/gruvbox-rainbow.md | 4 +- docs/pt-PT/presets/jetpack.md | 4 +- docs/pt-PT/presets/nerd-font.md | 4 +- docs/pt-PT/presets/no-empty-icons.md | 4 +- docs/pt-PT/presets/no-nerd-font.md | 4 +- docs/pt-PT/presets/no-runtimes.md | 4 +- docs/pt-PT/presets/pastel-powerline.md | 4 +- docs/pt-PT/presets/plain-text.md | 4 +- docs/pt-PT/presets/pure-preset.md | 4 +- docs/pt-PT/presets/tokyo-night.md | 4 +- docs/{.vuepress => }/public/_redirects | 0 docs/public/config-schema.json | 1 + docs/{.vuepress => }/public/demo.mp4 | Bin docs/{.vuepress => }/public/demo.webm | Bin docs/public/icon.png | 1 + docs/public/install.sh | 1 + docs/public/logo.png | 1 + docs/public/logo.svg | 1 + docs/public/nerd-font.woff2 | Bin 0 -> 862124 bytes .../public/presets/img/bracketed-segments.png | Bin .../public/presets/img/gruvbox-rainbow.png | Bin .../public/presets/img/jetpack.png | Bin .../public/presets/img/nerd-font-symbols.png | Bin .../public/presets/img/no-empty-icons.png | Bin .../presets/img/no-runtime-versions.png | Bin .../public/presets/img/pastel-powerline.png | Bin .../public/presets/img/plain-text-symbols.png | Bin .../public/presets/img/pure-preset.png | Bin .../public/presets/img/tokyo-night.png | Bin .../presets/toml/bracketed-segments.toml | 0 .../public/presets/toml/gruvbox-rainbow.toml | 0 .../public/presets/toml/jetpack.toml | 0 .../presets/toml/nerd-font-symbols.toml | 0 .../public/presets/toml/no-empty-icons.toml | 0 .../public/presets/toml/no-nerd-font.toml | 0 .../presets/toml/no-runtime-versions.toml | 0 .../public/presets/toml/pastel-powerline.toml | 0 .../presets/toml/plain-text-symbols.toml | 0 .../public/presets/toml/pure-preset.toml | 0 .../public/presets/toml/tokyo-night.toml | 0 docs/{.vuepress => }/public/robots.txt | 0 docs/ru-RU/README.md | 21 +- docs/ru-RU/advanced-config/README.md | 2 +- docs/ru-RU/config/README.md | 6 +- docs/ru-RU/faq/README.md | 2 +- docs/ru-RU/guide/README.md | 6 +- docs/ru-RU/installing/README.md | 2 +- docs/ru-RU/presets/bracketed-segments.md | 4 +- docs/ru-RU/presets/gruvbox-rainbow.md | 4 +- docs/ru-RU/presets/jetpack.md | 4 +- docs/ru-RU/presets/nerd-font.md | 4 +- docs/ru-RU/presets/no-empty-icons.md | 4 +- docs/ru-RU/presets/no-nerd-font.md | 4 +- docs/ru-RU/presets/no-runtimes.md | 4 +- docs/ru-RU/presets/pastel-powerline.md | 4 +- docs/ru-RU/presets/plain-text.md | 4 +- docs/ru-RU/presets/pure-preset.md | 4 +- docs/ru-RU/presets/tokyo-night.md | 4 +- docs/tr-TR/README.md | 21 +- docs/tr-TR/advanced-config/README.md | 4 +- docs/tr-TR/config/README.md | 6 +- docs/tr-TR/faq/README.md | 2 +- docs/tr-TR/guide/README.md | 6 +- docs/tr-TR/installing/README.md | 2 +- docs/tr-TR/presets/bracketed-segments.md | 4 +- docs/tr-TR/presets/gruvbox-rainbow.md | 4 +- docs/tr-TR/presets/jetpack.md | 4 +- docs/tr-TR/presets/nerd-font.md | 4 +- docs/tr-TR/presets/no-empty-icons.md | 4 +- docs/tr-TR/presets/no-nerd-font.md | 4 +- docs/tr-TR/presets/no-runtimes.md | 4 +- docs/tr-TR/presets/pastel-powerline.md | 4 +- docs/tr-TR/presets/plain-text.md | 4 +- docs/tr-TR/presets/pure-preset.md | 4 +- docs/tr-TR/presets/tokyo-night.md | 4 +- docs/uk-UA/README.md | 21 +- docs/uk-UA/advanced-config/README.md | 2 +- docs/uk-UA/config/README.md | 10 +- docs/uk-UA/faq/README.md | 2 +- docs/uk-UA/guide/README.md | 6 +- docs/uk-UA/installing/README.md | 2 +- docs/uk-UA/presets/bracketed-segments.md | 4 +- docs/uk-UA/presets/gruvbox-rainbow.md | 4 +- docs/uk-UA/presets/jetpack.md | 4 +- docs/uk-UA/presets/nerd-font.md | 4 +- docs/uk-UA/presets/no-empty-icons.md | 4 +- docs/uk-UA/presets/no-nerd-font.md | 4 +- docs/uk-UA/presets/no-runtimes.md | 4 +- docs/uk-UA/presets/pastel-powerline.md | 4 +- docs/uk-UA/presets/plain-text.md | 4 +- docs/uk-UA/presets/pure-preset.md | 4 +- docs/uk-UA/presets/tokyo-night.md | 4 +- docs/vi-VN/README.md | 21 +- docs/vi-VN/advanced-config/README.md | 2 +- docs/vi-VN/config/README.md | 6 +- docs/vi-VN/faq/README.md | 2 +- docs/vi-VN/guide/README.md | 6 +- docs/vi-VN/installing/README.md | 2 +- docs/vi-VN/presets/bracketed-segments.md | 4 +- docs/vi-VN/presets/gruvbox-rainbow.md | 4 +- docs/vi-VN/presets/jetpack.md | 4 +- docs/vi-VN/presets/nerd-font.md | 4 +- docs/vi-VN/presets/no-empty-icons.md | 4 +- docs/vi-VN/presets/no-nerd-font.md | 4 +- docs/vi-VN/presets/no-runtimes.md | 4 +- docs/vi-VN/presets/pastel-powerline.md | 4 +- docs/vi-VN/presets/plain-text.md | 4 +- docs/vi-VN/presets/pure-preset.md | 4 +- docs/vi-VN/presets/tokyo-night.md | 4 +- docs/zh-CN/README.md | 21 +- docs/zh-CN/advanced-config/README.md | 2 +- docs/zh-CN/config/README.md | 8 +- docs/zh-CN/faq/README.md | 2 +- docs/zh-CN/guide/README.md | 6 +- docs/zh-CN/installing/README.md | 2 +- docs/zh-CN/presets/bracketed-segments.md | 4 +- docs/zh-CN/presets/gruvbox-rainbow.md | 4 +- docs/zh-CN/presets/jetpack.md | 4 +- docs/zh-CN/presets/nerd-font.md | 4 +- docs/zh-CN/presets/no-empty-icons.md | 4 +- docs/zh-CN/presets/no-nerd-font.md | 4 +- docs/zh-CN/presets/no-runtimes.md | 4 +- docs/zh-CN/presets/pastel-powerline.md | 4 +- docs/zh-CN/presets/plain-text.md | 4 +- docs/zh-CN/presets/pure-preset.md | 4 +- docs/zh-CN/presets/tokyo-night.md | 4 +- docs/zh-TW/README.md | 21 +- docs/zh-TW/advanced-config/README.md | 2 +- docs/zh-TW/config/README.md | 6 +- docs/zh-TW/faq/README.md | 2 +- docs/zh-TW/guide/README.md | 6 +- docs/zh-TW/installing/README.md | 2 +- docs/zh-TW/presets/bracketed-segments.md | 4 +- docs/zh-TW/presets/gruvbox-rainbow.md | 4 +- docs/zh-TW/presets/jetpack.md | 4 +- docs/zh-TW/presets/nerd-font.md | 4 +- docs/zh-TW/presets/no-empty-icons.md | 4 +- docs/zh-TW/presets/no-nerd-font.md | 4 +- docs/zh-TW/presets/no-runtimes.md | 4 +- docs/zh-TW/presets/pastel-powerline.md | 4 +- docs/zh-TW/presets/plain-text.md | 4 +- docs/zh-TW/presets/pure-preset.md | 4 +- docs/zh-TW/presets/tokyo-night.md | 4 +- src/print.rs | 2 +- 424 files changed, 2893 insertions(+), 27713 deletions(-) rename docs/{.vuepress/config.ts => .vitepress/config.mts} (63%) create mode 100644 docs/.vitepress/theme/index.css create mode 100644 docs/.vitepress/theme/index.js delete mode 120000 docs/.vuepress/public/config-schema.json delete mode 120000 docs/.vuepress/public/icon.png delete mode 120000 docs/.vuepress/public/install.sh delete mode 120000 docs/.vuepress/public/logo.png delete mode 120000 docs/.vuepress/public/logo.svg delete mode 100644 docs/.vuepress/public/nerd-font.woff2 delete mode 100644 docs/.vuepress/styles/index.styl delete mode 100644 docs/.vuepress/styles/palette.styl rename docs/{.vuepress => }/public/_redirects (100%) create mode 120000 docs/public/config-schema.json rename docs/{.vuepress => }/public/demo.mp4 (100%) rename docs/{.vuepress => }/public/demo.webm (100%) create mode 120000 docs/public/icon.png create mode 120000 docs/public/install.sh create mode 120000 docs/public/logo.png create mode 120000 docs/public/logo.svg create mode 100644 docs/public/nerd-font.woff2 rename docs/{.vuepress => }/public/presets/img/bracketed-segments.png (100%) rename docs/{.vuepress => }/public/presets/img/gruvbox-rainbow.png (100%) rename docs/{.vuepress => }/public/presets/img/jetpack.png (100%) rename docs/{.vuepress => }/public/presets/img/nerd-font-symbols.png (100%) rename docs/{.vuepress => }/public/presets/img/no-empty-icons.png (100%) rename docs/{.vuepress => }/public/presets/img/no-runtime-versions.png (100%) rename docs/{.vuepress => }/public/presets/img/pastel-powerline.png (100%) rename docs/{.vuepress => }/public/presets/img/plain-text-symbols.png (100%) rename docs/{.vuepress => }/public/presets/img/pure-preset.png (100%) rename docs/{.vuepress => }/public/presets/img/tokyo-night.png (100%) rename docs/{.vuepress => }/public/presets/toml/bracketed-segments.toml (100%) rename docs/{.vuepress => }/public/presets/toml/gruvbox-rainbow.toml (100%) rename docs/{.vuepress => }/public/presets/toml/jetpack.toml (100%) rename docs/{.vuepress => }/public/presets/toml/nerd-font-symbols.toml (100%) rename docs/{.vuepress => }/public/presets/toml/no-empty-icons.toml (100%) rename docs/{.vuepress => }/public/presets/toml/no-nerd-font.toml (100%) rename docs/{.vuepress => }/public/presets/toml/no-runtime-versions.toml (100%) rename docs/{.vuepress => }/public/presets/toml/pastel-powerline.toml (100%) rename docs/{.vuepress => }/public/presets/toml/plain-text-symbols.toml (100%) rename docs/{.vuepress => }/public/presets/toml/pure-preset.toml (100%) rename docs/{.vuepress => }/public/presets/toml/tokyo-night.toml (100%) rename docs/{.vuepress => }/public/robots.txt (100%) diff --git a/.github/workflows/format-workflow.yml b/.github/workflows/format-workflow.yml index 50c96a62..34636ad3 100644 --- a/.github/workflows/format-workflow.yml +++ b/.github/workflows/format-workflow.yml @@ -40,3 +40,26 @@ jobs: with: githubToken: ${{ secrets.GITHUB_TOKEN }} pattern: docs/[a-z][a-z][a-z]?-[A-Z][A-Z]?/.* + + # Vitepress build + vitepress: + name: Vitepress [Build] + runs-on: ubuntu-latest + steps: + - name: Setup | Checkout + uses: actions/checkout@v4 + + - name: Setup | Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'npm' + cache-dependency-path: docs/package-lock.json + + - name: Setup | Install dependencies + run: npm install + working-directory: docs + + - name: Build | Build docs site + run: npm run build + working-directory: docs diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 0aabea0c..a28ccc3d 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -10,9 +10,9 @@ jobs: uses: actions/checkout@v4 - name: Setup | Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 20 cache: 'npm' cache-dependency-path: docs/package-lock.json @@ -27,7 +27,7 @@ jobs: - name: Publish uses: netlify/actions/cli@master with: - args: deploy --prod --dir=docs/.vuepress/dist + args: deploy --prod --dir=docs/.vitepress/dist env: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8e2bd1ae..c9cb80ed 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -215,9 +215,9 @@ jobs: xcrun notarytool store-credentials "$KEYCHAIN_ENTRY" --team-id "$APPLEID_TEAMID" --apple-id "$APPLEID_USERNAME" --password "$APPLEID_PASSWORD" --keychain "$KEYCHAIN_PATH" - name: Setup | Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 20 - name: Notarize | Build docs run: | diff --git a/.gitignore b/.gitignore index 7e007b41..ad63a01c 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,8 @@ Cargo.lock # Compiled files for documentation docs/node_modules -docs/.vuepress/dist/ +docs/.vitepress/dist/ +docs/.vitepress/cache/ # Ignore pkg files within the install directory -install/**/*.pkg \ No newline at end of file +install/**/*.pkg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ff3c7435..5aaff0eb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -251,7 +251,7 @@ Changes to documentation can be viewed in a rendered state from the GitHub PR pa (go to the CI section at the bottom of the page and look for "deploy preview", then click on "details"). If you want to view changes locally as well, follow these steps. -After cloning the project, you can do the following to run the VuePress website on your local machine: +After cloning the project, you can do the following to run the VitePress website on your local machine: 1. `cd` into the `/docs` directory. 2. Install the project dependencies: @@ -266,7 +266,7 @@ After cloning the project, you can do the following to run the VuePress website npm run dev ``` -Once setup is complete, you can refer to VuePress documentation on the actual implementation here: . +Once setup is complete, you can refer to VitePress documentation on the actual implementation here: . ## Git/GitHub workflow @@ -292,7 +292,7 @@ everyone remember what they are. Don't worry: most of them are quite simple! appropriate--this is a bare minimum). - [ ] Add the variable to the appropriate location in the "Default Prompt Format" section of the documentation -- [ ] Add an appropriate choice of options to each preset in `docs/.vuepress/public/presets/toml` +- [ ] Add an appropriate choice of options to each preset in `docs/public/presets/toml` - [ ] Update the config file schema by running `cargo run --features config-schema -- config-schema > .github/config-schema.json` - [ ] Create configs structs/traits in `src/configs/.rs` and add the following: diff --git a/build.rs b/build.rs index fb531244..d2ffecf3 100644 --- a/build.rs +++ b/build.rs @@ -19,8 +19,8 @@ fn main() -> SdResult<()> { } fn gen_presets_hook(mut file: &File) -> SdResult<()> { - println!("cargo:rerun-if-changed=docs/.vuepress/public/presets/toml"); - let paths = fs::read_dir("docs/.vuepress/public/presets/toml")?; + println!("cargo:rerun-if-changed=docs/public/presets/toml"); + let paths = fs::read_dir("docs/public/presets/toml")?; let mut sortedpaths = paths.collect::>>()?; sortedpaths.sort_by_key(std::fs::DirEntry::path); diff --git a/docs/.vuepress/config.ts b/docs/.vitepress/config.mts similarity index 63% rename from docs/.vuepress/config.ts rename to docs/.vitepress/config.mts index 38d18333..19bf333d 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vitepress/config.mts @@ -1,98 +1,343 @@ -import { defineConfig, SidebarConfigArray } from "vuepress/config"; +import { defineConfig } from "vitepress"; -const sidebar = (lang, override = {}): SidebarConfigArray => +const sidebar = (lang: string | undefined, override = {}) => [ - "", // "Home", which should always have a override - "guide", // README, which should always have a override + { page: "guide", text: "Guide" }, // README, which should always have a override // Overrides for any page below is an inconsistency between the sidebar title and page title - "installing", - "config", - "advanced-config", - "faq", - "presets", - ].map(page => { + { page: "installing", text: "Installation" }, + { page: "config", text: "Configuration" }, + { page: "advanced-config", text: "Advanced Configuration" }, + { page: "faq", text: "FAQ" }, + { page: "presets", text: "Presets" }, + ].map(item => { let path = "/"; if (lang) { path += `${lang}/`; } - if (page) { - path += `${page}/`; + if (item.page) { + path += `${item.page}/`; } - // If no override is set for current page, let VuePress fallback to page title - return page in override ? [path, override[page]] : path; + // If no override is set for current page, let VitePress fallback to page title + return { link: path, text: override?.[item.page] ?? item.text }; }); -module.exports = defineConfig({ +const editLinkPattern = 'https://github.com/starship/starship/edit/master/docs/:path'; + +export default defineConfig({ locales: { - "/": { + root: { + label: "English", lang: "en-US", title: "Starship", description: "The minimal, blazing-fast, and infinitely customizable prompt for any shell!", + + themeConfig: { + // Custom navbar values + nav: [{ text: "Configuration", link: "/config/"}], + // Custom sidebar values + sidebar: sidebar("", { + guide: "Guide", + }), + // Enable edit links + editLink: { + text: "Edit this page on GitHub", + pattern: editLinkPattern, + }, + } }, - "/de-DE/": { + "de-DE": { + label: "Deutsch", lang: "de-DE", title: "Starship", description: "Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell!", + + themeConfig: { + // text for the language dropdown + langMenuLabel: "Sprachen", + returnToTopLabel: "Zurück zum Seitenanfang", + sidebarMenuLabel: "Menü", + + nav: [{ text: "Konfiguration", link: "/de-DE/config/" }], + // Custom sidebar values + sidebar: sidebar("de-DE", { + guide: "Anleitung", + installing: "Erweiterte Installation", + faq: "Häufig gestellte Fragen", + presets: "Konfigurations-Beispiele", + }), + editLink: { + text: "Bearbeite diese Seite auf GitHub", + pattern: editLinkPattern, + }, + } }, - "/es-ES/": { + "es-ES": { + label: "Español", lang: "es-ES", title: "Starship", description: "¡El prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Idiomas", + returnToTopLabel: "Volver arriba", + sidebarMenuLabel: "Menú", + // Custom navbar values + nav: [{ text: "Configuración", link: "/es-ES/config/" }], + // Custom sidebar values + sidebar: sidebar("es-ES", { + guide: "Guía", + installing: "Instalación avanzada", + faq: "Preguntas frecuentes", + presets: "Ajustes predeterminados", + }), + editLink: { + text: "Edita esta página en GitHub", + pattern: editLinkPattern, + }, + }, }, - "/fr-FR/": { + "fr-FR": { + label: "Français", lang: "fr-FR", title: "Starship", description: "L'invite minimaliste, ultra-rapide et personnalisable à l'infini pour n'importe quel shell !", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Langues", + returnToTopLabel: "Retour en haut", + // Custom navbar values + nav: [{ text: "Configuration", link: "/fr-FR/config/" }], + // Custom sidebar values + sidebar: sidebar("fr-FR", { + guide: "Guide", + installing: "Installation avancée", + }), + editLink: { + text: "Éditez cette page sur GitHub", + pattern: editLinkPattern, + }, + }, }, - "/id-ID/": { + "id-ID": { + label: "Bahasa Indonesia", lang: "id-ID", title: "Starship", description: "Prompt yang minimal, super cepat, dan dapat disesuaikan tanpa batas untuk shell apa pun!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Languages", + returnToTopLabel: "Kembali ke atas", + // Custom navbar values + nav: [{ text: "Konfigurasi", link: "/id-ID/config/" }], + // Custom sidebar values + sidebar: sidebar("id-ID", { + guide: "Petunjuk", + installing: "Advanced Installation", + faq: "Pertanyaan Umum", + presets: "Prasetel", + }), + editLink: { + text: "Sunting halaman ini di Github", + pattern: editLinkPattern, + }, + }, }, - "/it-IT/": { + "it-IT": { + label: "Italiano", lang: "it-IT", title: "Starship", description: "Il prompt minimalista, super veloce e infinitamente personalizzabile per qualsiasi shell!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Languages", + returnToTopLabel: "Torna all'inizio", + // Custom navbar values + nav: [{ text: "Configuration", link: "/it-IT/config/" }], + // Custom sidebar values + sidebar: sidebar("it-IT", { + guide: "Guide", + installing: "Installazione Avanzata", + }), + editLink: { + text: "Modifica questa pagina in Github", + pattern: editLinkPattern, + }, + }, }, - "/ja-JP/": { + "ja-JP": { + label: "日本語", lang: "ja-JP", title: "Starship", description: "シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトです!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "言語", + returnToTopLabel: "ページの先頭へ", + sidebarMenuLabel: "メニュー", + // Custom navbar values + nav: [{ text: "設定", link: "/ja-JP/config/" }], + // Custom sidebar values + sidebar: sidebar("ja-JP", { + guide: "ガイド", + installing: "高度なインストール", + }), + editLink: { + text: "GitHub で編集する", + pattern: editLinkPattern, + }, + }, }, - "/pt-BR/": { + "pt-BR": { + label: "Português do Brasil", lang: "pt-BR", title: "Starship", description: "O prompt minimalista, extremamente rápido e infinitamente personalizável para qualquer shell!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Languages", + returnToTopLabel: "Voltar ao topo", + // Custom navbar values + nav: [{ text: "Configuração", link: "/pt-BR/config/" }], + // Custom sidebar values + sidebar: sidebar("pt-BR", { + guide: "Guia", + installing: "Instalação avançada", + faq: "Perguntas frequentes", + presets: "Predefinições", + }), + editLink: { + text: "Edite esta página no Github", + pattern: editLinkPattern, + }, + }, }, - "/ru-RU/": { + "ru-RU": { + label: "Русский", lang: "ru-RU", title: "Starship", description: "Минималистичная, быстрая и бесконечно настраиваемая командная строка для любой оболочки!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Языки", + returnToTopLabel: "Наверх", + sidebarMenuLabel: "Меню", + // Custom navbar values + nav: [{ text: "Настройка", link: "/ru-RU/config/" }], + // Custom sidebar values + sidebar: sidebar("ru-RU", { + guide: "Руководство", + installing: "Advanced Installation", + config: "Настройка", + "advanced-config": "Расширенная Настройка", + faq: "Часто Задаваемые Вопросы", + }), + editLink: { + text: "Редактировать эту страницу на GitHub", + pattern: editLinkPattern, + }, + }, }, - "/uk-UA/": { + "uk-UA": { + label: "Українська", lang: "uk-UA", title: "Starship", description: "Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Мови", + returnToTopLabel: "Догори", + sidebarMenuLabel: "Меню", + // Custom navbar values + nav: [{ text: "Налаштування", link: "/uk-UA/config/" }], + // Custom sidebar values + sidebar: sidebar("uk-UA", { + guide: "Керівництво", + installing: "Розширене встановлення", + config: "Налаштування", + "advanced-config": "Розширені налаштування", + faq: "Часті питання", + presets: "Шаблони", + }), + editLink: { + text: "Редагувати цю сторінку на GitHub", + pattern: editLinkPattern, + }, + }, }, - "/vi-VN/": { + "vi-VN": { + label: "Tiếng Việt", lang: "vi-VN", title: "Starship", description: "Nhỏ gọn, cực nhanh, và khả năng tuỳ chỉnh vô hạn prompt cho bất kì shell nào!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "Ngôn ngữ", + returnToTopLabel: "Quay lại đầu trang", + // Custom navbar values + nav: [{ text: "Cấu hình", link: "/vi-VN/config/" }], + // Custom sidebar values + sidebar: sidebar("vi-VN", { + guide: "Hướng dẫn", + installing: "Cài đặt nâng cao", + faq: "Các hỏi thường gặp", + }), + editLink: { + text: "Chỉnh sửa trang này trên GitHub", + pattern: editLinkPattern, + }, + }, }, - "/zh-CN/": { + "zh-CN": { + label: "简体中文", lang: "zh-CN", title: "Starship", description: "轻量级、反应迅速,可定制的高颜值终端!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "语言", + returnToTopLabel: "返回顶部", + sidebarMenuLabel: "目录", + // Custom navbar values + nav: [{ text: "配置", link: "/zh-CN/config/" }], + // Custom sidebar values + sidebar: sidebar("zh-CN", { + guide: "指南", + installing: "高级安装", + presets: "社区配置分享", + }), + editLink: { + text: "在 GitHub 上修改此页", + pattern: editLinkPattern, + }, + }, }, - "/zh-TW/": { + "zh-TW": { + label: "繁體中文", lang: "zh-TW", title: "Starship", description: "適合任何 shell 的最小、極速、無限客製化的提示字元!", + themeConfig: { + // text for the language dropdown + langMenuLabel: "語言", + returnToTopLabel: "返回頂部", + sidebarMenuLabel: "目錄", + // Custom navbar values + nav: [{ text: "設定", link: "/zh-TW/config/" }], + // Custom sidebar values + sidebar: sidebar("zh-TW", { + guide: "指引", + installing: "進階安裝", + }), + editLink: { + text: "在 GitHub 上修改此頁面", + pattern: editLinkPattern, + }, + }, }, }, // prettier-ignore @@ -120,7 +365,7 @@ module.exports = defineConfig({ [ "script", { - async: true, + async: '', src: "https://www.googletagmanager.com/gtag/js?id=G-N3M0VJ9NL6", }, ], @@ -130,245 +375,41 @@ module.exports = defineConfig({ "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-N3M0VJ9NL6');", ], ], - evergreen: true, - theme: "default-prefers-color-scheme", + sitemap: { + hostname: 'https://starship.rs' + }, + vite: { + resolve: { + preserveSymlinks: true + } + }, + cleanUrls: true, + markdown: { + theme: "github-dark" + }, + ignoreDeadLinks: [ + /\/toml\/.*/, + ], + // VitePress doesn't support README.md as index files + // Rewrite README.md to index.md at different levels + rewrites: { + "README.md": "index.md", + ":c0/README.md": ":c0/index.md", + ":c0/:c1/README.md": ":c0/:c1/index.md", + ":c0/:c1/:c2/README.md": ":c0/:c1/:c2/index.md", + ":c0/:c1/:c2/:c3/README.md": ":c0/:c1/:c2/:c3/index.md", + }, themeConfig: { logo: "/icon.png", - // the GitHub repo path - repo: "starship/starship", - // the label linking to the repo - repoLabel: "GitHub", - // if your docs are not at the root of the repo: - docsDir: "docs", - // defaults to false, set to true to enable - editLinks: true, + socialLinks: [ + { icon: 'github', link: 'https://github.com/starship/starship' }, + ], + // enables Algolia DocSearch algolia: { apiKey: "44118471f56286dcda7db941a043370d", indexName: "starship", appId: "M3XUO3SQOR", }, - locales: { - "/": { - // text for the language dropdown - selectText: "Languages", - // label for this locale in the language dropdown - label: "English", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Edit this page on GitHub", - // Custom navbar values - nav: [{ text: "Configuration", link: "/config/" }], - // Custom sidebar values - sidebar: sidebar("", { - guide: "Guide", - }), - }, - "/de-DE/": { - // text for the language dropdown - selectText: "Sprachen", - // label for this locale in the language dropdown - label: "Deutsch", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Bearbeite diese Seite auf GitHub", - // Custom navbar values - nav: [{ text: "Konfiguration", link: "/de-DE/config/" }], - // Custom sidebar values - sidebar: sidebar("de-DE", { - guide: "Anleitung", - installing: "Erweiterte Installation", - faq: "Häufig gestellte Fragen", - presets: "Konfigurations-Beispiele", - }), - }, - "/es-ES/": { - // text for the language dropdown - selectText: "Idiomas", - // label for this locale in the language dropdown - label: "Español", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Edita esta página en GitHub", - // Custom navbar values - nav: [{ text: "Configuración", link: "/es-ES/config/" }], - // Custom sidebar values - sidebar: sidebar("es-ES", { - guide: "Guía", - installing: "Instalación avanzada", - faq: "Preguntas frecuentes", - presets: "Ajustes predeterminados", - }), - }, - "/fr-FR/": { - // text for the language dropdown - selectText: "Langues", - // label for this locale in the language dropdown - label: "Français", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Éditez cette page sur GitHub", - // Custom navbar values - nav: [{ text: "Configuration", link: "/fr-FR/config/" }], - // Custom sidebar values - sidebar: sidebar("fr-FR", { - guide: "Guide", - installing: "Installation avancée", - }), - }, - "/id-ID/": { - // text for the language dropdown - selectText: "Languages", - // label for this locale in the language dropdown - label: "Bahasa Indonesia", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Sunting halaman ini di Github", - // Custom navbar values - nav: [{ text: "Konfigurasi", link: "/id-ID/config/" }], - // Custom sidebar values - sidebar: sidebar("id-ID", { - guide: "Petunjuk", - installing: "Advanced Installation", - faq: "Pertanyaan Umum", - presets: "Prasetel", - }), - }, - "/it-IT/": { - // text for the language dropdown - selectText: "Languages", - // label for this locale in the language dropdown - label: "Italiano", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Modifica questa pagina in Github", - // Custom navbar values - nav: [{ text: "Configuration", link: "/it-IT/config/" }], - // Custom sidebar values - sidebar: sidebar("it-IT", { - guide: "Guide", - installing: "Installazione Avanzata", - }), - }, - "/ja-JP/": { - // text for the language dropdown - selectText: "言語", - // label for this locale in the language dropdown - label: "日本語", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "GitHub で編集する", - // Custom navbar values - nav: [{ text: "設定", link: "/ja-JP/config/" }], - // Custom sidebar values - sidebar: sidebar("ja-JP", { - guide: "ガイド", - installing: "高度なインストール", - }), - }, - "/pt-BR/": { - // text for the language dropdown - selectText: "Languages", - // label for this locale in the language dropdown - label: "Português do Brasil", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Edite esta página no Github", - // Custom navbar values - nav: [{ text: "Configuração", link: "/pt-BR/config/" }], - // Custom sidebar values - sidebar: sidebar("pt-BR", { - guide: "Guia", - installing: "Instalação avançada", - faq: "Perguntas frequentes", - presets: "Predefinições", - }), - }, - "/ru-RU/": { - // text for the language dropdown - selectText: "Языки", - // label for this locale in the language dropdown - label: "Русский", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Редактировать эту страницу на GitHub", - // Custom navbar values - nav: [{ text: "Настройка", link: "/ru-RU/config/" }], - // Custom sidebar values - sidebar: sidebar("ru-RU", { - guide: "Руководство", - installing: "Advanced Installation", - config: "Настройка", - "advanced-config": "Расширенная Настройка", - faq: "Часто Задаваемые Вопросы", - }), - }, - "/uk-UA/": { - // text for the language dropdown - selectText: "Мови", - // label for this locale in the language dropdown - label: "Українська", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Редагувати цю сторінку на GitHub", - // Custom navbar values - nav: [{ text: "Налаштування", link: "/uk-UA/config/" }], - // Custom sidebar values - sidebar: sidebar("uk-UA", { - guide: "Керівництво", - installing: "Розширене встановлення", - config: "Налаштування", - "advanced-config": "Розширені налаштування", - faq: "Часті питання", - presets: "Шаблони", - }), - }, - "/vi-VN/": { - // text for the language dropdown - selectText: "Ngôn ngữ", - // label for this locale in the language dropdown - label: "Tiếng Việt", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "Chỉnh sửa trang này trên GitHub", - // Custom navbar values - nav: [{ text: "Cấu hình", link: "/vi-VN/config/" }], - // Custom sidebar values - sidebar: sidebar("vi-VN", { - guide: "Hướng dẫn", - installing: "Cài đặt nâng cao", - faq: "Các hỏi thường gặp", - }), - }, - "/zh-TW/": { - // text for the language dropdown - selectText: "語言", - // label for this locale in the language dropdown - label: "繁體中文", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "在 GitHub 上修改此頁面", - // Custom navbar values - nav: [{ text: "設定", link: "/zh-TW/config/" }], - // Custom sidebar values - sidebar: sidebar("zh-TW", { - guide: "指引", - installing: "進階安裝", - }), - }, - "/zh-CN/": { - // text for the language dropdown - selectText: "语言", - // label for this locale in the language dropdown - label: "简体中文", - // Custom text for edit link. Defaults to "Edit this page" - editLinkText: "在 GitHub 上修改此页", - // Custom navbar values - nav: [{ text: "配置", link: "/zh-CN/config/" }], - // Custom sidebar values - sidebar: sidebar("zh-CN", { - guide: "指南", - installing: "高级安装", - presets: "社区配置分享", - }), - }, - }, - }, - plugins: [ - [ - "vuepress-plugin-sitemap", - { - hostname: "https://starship.rs", - }, - ], - ["vuepress-plugin-code-copy", true], - ], + } }); diff --git a/docs/.vitepress/theme/index.css b/docs/.vitepress/theme/index.css new file mode 100644 index 00000000..0434a59e --- /dev/null +++ b/docs/.vitepress/theme/index.css @@ -0,0 +1,97 @@ +.VPHero .container { + flex-direction: column; + text-align: center !important; + gap: 10px; +} + +.VPHero .image { + order: 0; + margin: 0; +} + +.VPHero .image-container { + transform: none; + height: auto; +} + +.VPHero .image img { + max-height: 130px; + max-width: none; + position: static; + transform: none; +} + +.VPHero .container .actions { + justify-content: center !important; +} + +.VPHero .main { + margin: 0 auto; +} + +.demo-video { + max-width: 700px; + width: 100%; + margin: 50px auto; + border-radius: 6px; +} + +.action-button { + background-color: #dd0b78 !important; + border-bottom: #c6096b !important; +} + +p[align="center"] img { + display: inline-block; +} + +p[align="center"] img[height="20"] { + height: 20px; +} + +@font-face { + font-family: 'Nerd Font'; + src: url("/nerd-font.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + unicode-range: U+e000-f8ff, U+f0000-fffff, U+100000-10ffff; +} + +code { + overflow-wrap: break-word; +} + +.vp-doc [class*='language-']>button.copy { + top: unset; + bottom: 12px; +} + +:root { + --vp-font-family-mono: 'Nerd Font', source-code-pro, SFMono-Regular, 'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; + --vp-c-brand-1: #9b0854; + --vp-c-brand-2: #f31186; + --vp-c-brand-3: #dd0b78; + --vp-c-brand-soft: rgba(221, 11, 120, 0.14); + /* The following colors were extracted from the dark variant of the default VitePress theme + * Styled variables from: https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css#L319-L362 + */ + --vp-code-block-bg: #282c34; + --vp-code-color: #282c34; + --vp-code-block-divider-color: #000; + --vp-code-lang-color: rgba(235, 235, 245, 0.38); + --vp-code-line-highlight-color: rgba(101, 117, 133, 0.16); + --vp-code-line-number-color: rgba(235, 235, 245, 0.38); + --vp-code-copy-code-border-color: #2e2e32; + --vp-code-copy-code-bg: #202127; + --vp-code-copy-code-hover-border-color: #2e2e32; + --vp-code-copy-code-hover-bg: #1b1b1f; + --vp-code-copy-code-active-text: rgba(235, 235, 245, 0.6); +} + +.dark { + --vp-c-brand-1: #ff70cd; + --vp-c-brand-2: #ff14ad; + --vp-c-brand-3: #ff33b8; + --vp-c-brand-soft: rgba(255, 51, 184, 0.14); + --vp-code-color: #fff; +} diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 00000000..7985f147 --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,4 @@ +import DefaultTheme from "vitepress/theme"; +import "./index.css"; + +export default DefaultTheme; diff --git a/docs/.vuepress/public/config-schema.json b/docs/.vuepress/public/config-schema.json deleted file mode 120000 index 84b99ad1..00000000 --- a/docs/.vuepress/public/config-schema.json +++ /dev/null @@ -1 +0,0 @@ -../../../.github/config-schema.json \ No newline at end of file diff --git a/docs/.vuepress/public/icon.png b/docs/.vuepress/public/icon.png deleted file mode 120000 index bd23aa74..00000000 --- a/docs/.vuepress/public/icon.png +++ /dev/null @@ -1 +0,0 @@ -../../../media/icon.png \ No newline at end of file diff --git a/docs/.vuepress/public/install.sh b/docs/.vuepress/public/install.sh deleted file mode 120000 index ecbb1201..00000000 --- a/docs/.vuepress/public/install.sh +++ /dev/null @@ -1 +0,0 @@ -../../../install/install.sh \ No newline at end of file diff --git a/docs/.vuepress/public/logo.png b/docs/.vuepress/public/logo.png deleted file mode 120000 index a10bddbe..00000000 --- a/docs/.vuepress/public/logo.png +++ /dev/null @@ -1 +0,0 @@ -../../../media/logo.png \ No newline at end of file diff --git a/docs/.vuepress/public/logo.svg b/docs/.vuepress/public/logo.svg deleted file mode 120000 index 69d2f888..00000000 --- a/docs/.vuepress/public/logo.svg +++ /dev/null @@ -1 +0,0 @@ -../../../media/logo.svg \ No newline at end of file diff --git a/docs/.vuepress/public/nerd-font.woff2 b/docs/.vuepress/public/nerd-font.woff2 deleted file mode 100644 index 60f70029f33240c86d5e764887a41e04efa53230..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378316 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
-X&K zI8*W`BDPpvJ^L@Ijb?Zx(AmuRGh54(FO=f1+xZvw70N(Ht)sec+3lcUce1}>(I9th z$@rOlR(AIG#G7_H9ThTo*%oTKC5Kaq>4{uLu1u+cidT!NYh>k z8t!m$t?7x51LrWRS(MGppFu0(bTVY9Qo@&Tm~6Orb<1Jgnr60##*Cb>M!xUKsE5@V zTh}!+0&#d@usyCPKgg!bT=BBoEZT_N?@sNok4&cbOCkUBR2H-E`~Gb{q&U~ zu_cGIUR*MKa5#j#*Nax+GS~){XZ6)y9?q}dxWMwFzOC=}o!y|HTjIC+gRAZ5&E`y$ zr_nwnTc{MV7#>$LMoT{7z}M_WElJ_*nblPEZf2^{HCZSZog#@06AfP|oyfU4;_+eO zh|(e3dVPf;M3%&xEfSDA0*?0807hq7Q=(WBR2w22`R8mMDL0 zYn}HzfV1aBuw)?DH}TM0 zMQM1P0s85&Yxjg9sWS3@I$xX(EQYkB(bGgzVU&UC5i?}4V6deOh$)j{Ue5|5Q~$iP z!2^r%{11z~-|P?3T?Ct%wpt${}fI_e$yvP~IZ4oCXl_ z4`Wu<4OJ@ZdczzJ^vcra4CYg(ViGyX{N6RhI!Sq|H`AzsE7V309cA4=Wzjw`f%VGd zxQuLttZal@*6QTCWwlm0&>>LXRcUjcy4b$5=BawM+bdHv?8PFV>a;=)h+{3Pww!G0 zM}NdjHs&H(FrS{8hD2(XrOiu$PRPIJa_(?6#I%}6gsHVM&jHCA!D9J@P4=;Bp7J0}jSh*n+4 zWxiyR^Q&8;{IUG8qHAtJ*f}EFQ{Ehv*-`J(+`nfT{b>yOwqdue#-+bUrSt$T_#p~z zs3j>`Belr7zNxj|TH_ZMyr_>~5#AXl$#ZqpWPXGJ8fariG#x#L`tGYbx|yHKm(> zqWrnr7mEc>T)Y|92QwZzLjwVJ?~^8TLi3ACZCuwCopm+tV83RFpPcCRUmA8Ln;h{J#Gko~3wf0R zoiC6`9F_hl!%A-}M5V*(PvQ5g{71Wc9=p8${l!~|qBLt(cAJOlEc>0DE%c{}q_6EA zuiLD^R$r?-w5TREXMFr&li54m-q{=(>)Y9gzY=Q@{6{a~}i^=)w-;bf=eq%wbzPg%@{BXw=ySrx@&mGE)z*gmF15R zv~ZUv>b^n!t42kT=G9ah;K?6ACp8XB7LF)?1gHkE%;f*9WOI6WSQEnBwZ%Nuvm0A) zt!JcsC+Mp7$< zGX#dr$HL_Cw?CR&Z?l{)ue@}$IKmN;C!>KtZS~wj%-GB3a>M1&v)a9Y0&R{f{w3l> zef$p*rz#poACHKr(Lme=h^E;1)X^QbSqe># z%#}(ZTSvCG-b|ldDyFzDF6Dg49-L8Ci3d7+lOr;j7}XJhEDvNgVmyr$5y8bq%%)kK zn;;f)@`e(x&&MjNPLa8Ki2%Cc)#KD3vZYhy!pxNqNp_6;Y~{)Y%UvhY`OE3^^Kl~g zAi=j}I_^)66V1K*{ZTj&M>h?d7gNL=Y^qBchJ)feL(aIYnh$&Pw-y)e2@>U4Cf+aH z*3}R&Y^3Z?W2lBnw&vUy0rQUK&I?sKYg6xhT;=P^qrqt^Puss@K85V{Toz@HHhr_! z^=Vg^N1FIBV=UHSFz<4+WZ%dqlnc|l6B+jWR+uHDW(irdj`W9KUyY5(xCI;9~HCyax}e%1_- zq{FCg3~hQh?!92ZaP4$3!ks`Gt;mx3jJM%B?B|Nd;}=`}$+Gou<0<+#vX$6Ub*r_t zSWH)=QeLiq2EFbqcki9$Rsk#*%JfM>aiG$GJfZz>$vyuEVuWU+N=F@^_J*alqBh2I z-()71rL#1r!AfQXb2GAYfixQJX@ka;GZU6DBkMVjVVV8I zlE$X}_p#9A*i@L@!@QWBWy!Fsol3pN{-Yhrs#xkXHr}tPIEn{lN3Kv-{#*GbN1nFt z%n1#bM_Q3)jSYo3W!qs}s+$#qHH+ zVYn2X7ugPihH_pDvN=Z|(FDC1p2HNkmo6B*dll*pr=QIjo5@@@#D)OHgaN!VC>Q{2 zTiYu?Xjy7C>Mct)kYsAPr=~T)aoyr)cS+wI+(`u}{9|%%rhA|VAX<_0{?sxk9MHseS~qA{mnqO!p@wWk-k@wkmcFPxynaWbYeu;D&C>xC169-- z)b*zX#u2M;4-SJu!$S2Iv|%RfZIo~sGXjS}2+rNp8}5o&Zz}H(PSa&nIxy7kp3;)+ zDOJE*r$B);Y4*M+lS|qdwl~K{LGYQd6Fs%HdN|1oUaF<9^Gu4Gf~i}Nmj@?YfK#cQ zbHmVqMaLOe;tjzW8cC? z#_JwF9)#-Kdw3htQ&r4K9RnE1Dt2X6Bv* zohuw~m|(Yt7o86mmwY~xB~_1-R+7ZP^(X)MhP@!ovjey9yT;*?t$NCx0pT?0`)E)v z`!9XqCr27TM432V+|OQS<_C`B^mh{coXgX_G05JhD?g2{u-AEqT(FEhKu?ea%dC-R zqR6RqSE)d6?v$e$>TjutNHE7P8sR(_?TLGS_iC}J|Dg%A<2M;7;Wu|gVWdN$qjM?C zL+WjN_}!}~UnYeY72ntTzV$zcU)p&foGI;m`yZOZ8slS++`Ux&KAHK(-bRO?6FlAj zFHV8}rv$g>#=iCY%ikAL?$msE6q2LMy7q?RlRgJh|Hfb0+cQ1&XAnepf@-nOvafY` z4jwA)%5mDn-%Dk?ixNapnx>2TL^l{!wyAY=iRz&5-QxM;oyu}W`J5%@Pu)qHY9I+1 zbzpgXb`&++oxgxgzP!Y1#mxD#o)(UeD8!Y0eeQOp!O5|N7W2DX-?BJACHgCzMBAQn z&DzE~dzcLNg}@o)-yS43$>r0Fbhu=F=v1y8YLm0e=KcNl6ImW0^iC||=Y@*!;Ljiq zg|kYgBK$HZ%LNSK{)pCnWET(^O_MII27Kf)&c=7;R4=rxLj$(AV;SVRQVfAl#4W6y~;82C=JOc7i;E?0kI2gYSA z<1i|0#5lwpe>>JC#$?X@FLhPs``U5b?{%V%&3g?*r49_&zTT>3+4NF`@=D^)(f&^W z-R-~rH{4t%ffaBftKO=coIf#L$TS(!g+4q7o z+AL2u;IY)x7MdawiATHFe_VML*4gkkZl zh_1(tegLwg7l_mUd6wwC`kRX}hJ`?O`ApT}psAM9-OsThWbl zY=yCZYrU`~5>ip{x| zx!EerCVIxhYlg>hGI#D9#qNR>&s1Z2%Zr?JU0S4KIu3l1+p#Kmh6@YBt}DrX1f{Dy z{C&UW|Fp8tCl|ixlcitOf6t%P58-xf1+EI&3CwzYNVnCs4jjCL9G0_xFbCU~oY z8M-%>f}N2cIm5;WxismH#fr$~Mjb+(a^ET>#Wkrg@+N+qecpXmkX1pfs!1`4yzECq zmtF3;SBV@jIq>!2la_dDn0fV<%emFcVrTPwC@&K;H#PD#<+ zF$vm5lCTQ0CQ-a>L5Vt*9SMT^>r>JrVl2U_`iK0kyv}(^Rw}m-8*1Ef!N5Bk zg)JLa*oHMja03I9CQ|$tnUENY9>EEWd@?2Yqnhiw6g=%egAuyPWd!36W(XCE(w>Tq=oJE-K*A)YgVcBZ)8_{uUOi1{QP6_=0%?O z0}PjS+Sf)!+1s$N*3v=(%UY5ZqjlhIVKx0UC`oM#>!f?kt}OWX6ZikUKN6OBO7Y5i z%n-2m09yulhrwllR1kqQ#`04N2?ek1?K%(G*-Zga2wm?kh;Ra&dM`j^_6P-q3Qxrv zgA6fyPomF2sxg|^k;onsMpwc}IG~sSQb4W0Z@@nQd=21C@lBGmzGox z`7sn$<}D<2UZY{pQ26|XOxdNFD-IqdG!trMI%gYEH#xL4;mpmuZ|KU=DWKFGt##;0z#<0LPJgq%?tlcty0`g({1?tQ4U&Q&giUr2pww z*)2((-pN+C>MO4W?rw6G-fpN3TA-M{@@3d!kz*8(!uP!Y_2yp;NCK_m^OMG}E_uCs z>%y%A%F=~jRP*?|XgEwLhODNNis=42K2w><`>0`szKV3iq)*yCv+Eda{oZa|A=`et zZ>~p6bjRb5(Xi~F%+y6*T>+5(-;1z39qO>pz{ z^=+Pc>7|@GJur}wOFVjoY-`e~&P`4OX0C{=X>fV`iN>wn$JBCQs9SWSNqO!!-@MGt zbDB7i_pX|*g<>SBdox3n;qZzomD0e%2dUPOn!@ax#8%vtGdfFBcX-mQ*SLlvZ-TIg zl{A=e_8jQOZc!w?G+=x_f_52za=HZ!Ds-&DX}! zmora!$*Tq@av=@Jr52!#zXQL)6Pa+3A~Pvz(nPrm#g%+Au-RLN5LneuiOR7UcV)YtF1cNbBFfx`>-e{AlwK63n)} zsbd=T^K7ZwEYM{8xiHaMx3T(TkhR1q3y%PG&Iz)=zX%^2s(wMWp=rN8ENzxfyAX)a ztzFES9wkfo*Pxx&=I)RurrIk_H&EavbxnG7gGKTU*VD?Z!%?b z^7DDw-Q4DnHkt+-g2l)=x@bD!aEh`+!TR-V+hE2#(>rjo5GRz54hFAfWTGnbt!)GQ zEQ;v^x>C61xVqL23u~QgzGH~yv%IQkfyDNmj%a~BZNI%v4FM?ZHn((_e3~Zhq@>** z5B}TAB6wlr4rGV8XFMkB7DTT(Pc#@Z>QKAEPWo?ZZ}`t`U;X>nRx&lKDFE1CfS~KW zT?`XpZ;Jymw}uu&JLSVuHLK<*>)(e(;`-dl89chG+M@0V?ofl8J>k44GF{^kW-Nx+ zN;J{NJ(q~Cw6aez_}uGEfgD3Qul|Bld_M}@^nWqpd-Gs+63+9(eiF9 z`RSp5_41R^?15N&S$pg$H?btrb$&Y$zJS8mUnhfzGd-v-tXDUwZKY1ThxOdaE`h94 z>0VIoKq7RvlEA*%s2|$XtC$&w)ff*E^@T8#E2{TZzcC&r81;vVh(;(2hKI1nR;_TE ztQe^CW66HiFiw+qNQwePp%a3&4`ES^F?baJX93GWmWsKQ55Bc#%RrYHayH|VWdy^j z+PA~pysyzf7BuxC@7_k$Qk0F}EUGM4^|v%CXY<1qU0F*f)(^Co271}MOSUav;Q6*9 z0GWG7Rg{cf7LTKDV{!?T%|rpHc}l-COc}>!GhxQO+ZkVh;VbAV)tGgC4=N(8Rh8GB z;wi?s7K|l;#P{SaXfFl!1(I!7s3C0?Bv9JXG0Dsd)ovn|3mVY5Sz28(*{_&_?~k&k zs*49Fq~bvov-Y{tc%6Jdd^S-b-wU?9OmnJ7N59&rnalp1*OQ#Ct;YRno14X`a7;TR z;DWQ})My_@mqb4}g>p#lTj2V){ulokY*VAIM?s(>p+qWBb*xGZMWQfDujZKNqWj(+zCvGvR+tnZKb({2wT$p!=kwyl&f8*w$J;G}=+j6b zgGxgs!F%|w_%d24g(;uq#ZZS_EUDnH0=06P1jz0wyNcs=aDYw5Sw6pb2z`*uBuBo+ zU$rOIp)hlo3dAjOYB?&dviGx{zIy(6x73iIVRD0Kk6>z{R)tOFFT@9buriJ{-bZU8 zX)?dgBx}aid9i`D#V$GCTls&+uxk|HVYlzXgU{;C5jU9|NgFxZvpQe_%Hl^Ho2F|> zO#fpG!(4kLcAs|-QTr$K5e&*f&{)&w}9tRlOL%YpB@F9*`_1sR8 zgf(IudJP`A3Evzbad%ikEwWH+^fgT!ZL~%f{yBoT@lpKPgNvlE09T|%($#eL9zT=V zDl;L(K3F4x{CrOBa7~qdHGfMga30(eA054oeor`abY|7!Zfd#&nm*b6U3XzsvrP`9 ziMf}$DDDnw4ciA#*y2%#^WU#w=?`pT?Uut6(ZOAM$RP4t+dq$FDvIds(#@1jMnvOm z)|B`?W~e`e)2hSE&zi-|5Xf>P9ZdI`3v!tu?m&w`e$ZYkEoCN_$;}k zacwn{F;xo8&heoRspf@!+UazGm<FaASQ)!rzDvd@?qBB&o`b7jNz_d@ic1 z-I3#`zUz>m_~}=`Mq3-LWijEMHIwXw4djaPcS#Szfq)g<}uRe?7fs=x_xI?sJh~k;7>bBX#ewFS2${;2EpIoJ%+uUB7=E!>~5)J>b z)FnzKVlYch3(-Oc;G2%~ApF-33=6Sams*``7aGaoGA0T04KK&}UijTQ}J=HtLA?1l;v&^-tRTZ5+v1b_|JN-3T2qzeBc2+@VU-j5>Nf&I3J0<_> zx3@kcA@{2v>Coa-{vVKc;5=hdrO1|vlAp95uk1k_EOfoSl2DEYORu^eTZKG9Ic*p& zO81kgcQ8Z9LRg=}wOT0;A>hhAq4PZU7!lnWTgkcx$_`7b~Ye}lkm0dv_{6hFr;ahHF1Y(ahT$=bG zPI_$!tfDO9Ky5X`zt%?GTw`je_>oA>c#nThHHU~s`_ZO$Lc-o?(WUvq9rLRRy9xpd zdiWcOz8&$+_WSyJ)Rt?FJC@g3Nlq!j@NK`}%=AZtX}_1TqQ#$LB3|bBYzlf=aEzn# zKSqk|;4|OymIHCNwH)$dIH~ZI8f~#+b^FBZfUWTd+6C^Rp!n59v7|#cQqk+@T=Q6N zox+|;dUVl5BWR_MshOR0rM%QBC@)HACZEBX1_wtH*6gwQ+$L$J662v}chL8Mq!+GzJXT+EzANiYX7c35dHM; z{@oJsGvVLa7yyl2emn}M$GmHS%T*2YU(KX#=134hE@2+Xq5iuRb$;A70d3RO@i%^u9yPR0$ zdVE0Vmx#&?!Mz(F70={5(uj9vJD2{r_N-{8ivZA2 z^nqI9Ns)4 z1qcjKe8)|WiHRLHdQua70dH+p6k{)fr;=z^E4+hwgPzZg=ze*wCiNat7xl$85rmF( z0&vW!hj`bP`DMZ*wpK)JKaoxpz3K^Gf;F-|z2$>f;E&CSm+c!w(Cy8ko_b4>YI>#E zW=7MDSPw4Z)UzqfKn=LoDohKZy{T#$qCQbD>hfIqDVOpQ%kNc`w90L}of)|u0PEKR ziXnnQ$WYq)0?|DpB-O7w8aG;3&2u$ zNa_v|F^5>7l`pf)DZ8o3E_1?cu{g6z_59$Owmuihbv^$NPDhxCQcM^lD<^(|>a!N? zeVm0Q?>iX!X(X(gmP}b^WR_6Gt2yiC1nc80zer=X<6IwXfy`FZwiE4I)3s!u{ zk`7jwLMZ4!nX<2tEp3&wrC=SUmj##K>5M^Jp@QF$C!a9ZcLTlfI*vvAAoW2yaqZn< zaJZ6b>-7&F@xTp9S=Q0n~WSFSZ z5^m*I&xsC7jhQOk{kVDPr(kK~L5}8un%7`2Icy;0#9-<)mbojW4iMUwN%(p1^o<8k ziECm`pxvBa;e^8i8M#$HE5(yLU%7eYf8rn~4B^M5r%=WvvmeIvGm)I2$ z5X@TRt$R(%JkjU_^&lJ0+L6B7x{fuD4%)37KEz*jf|VMgwmm_*{u%$~?%LT#{TRRGVYjZ=EX9 z?7n=6Yi^mgBOvxS*e`#euILz*ldWW~sds_m%$k&3 zJ`5_A4@L27+@G0AOuapcs=VtgS6_sBtj02{&hdUgm8iS*(TgpNe1o#T6h#!f|J{G_ z!v8)qO3{*3STeX1r3iz00u$Y-rb64w_28paqnc~pAWG%YX*9t<8afq>J5Pc!DqNU! zRGO-#ozFljN>$eITbGw86f5{htaW!DX;H%CLSLl-e$6_qd4iS}VvnWGsSQAFK@@ZL z6X^+3wmvOWPP6MiCxbsC(f|Ma_1EK&s+4QdnDgvK1FT5hT9u^S0)06ovf{$v+G=RC zQ4@(aX^%i%f;Kb5olllCjeSs>CsH@7&U~H`>{B;SzZ&fJGyeV6we)ulu~5_|N%=mf zYbMbsQDWhDh#?Cp^*bb+?55hn|GfA==P-yC=P;5WpU*8-AE*13pBfC-Uox?+g%Mpi z$FiVFAV|;9`ML#htzUGU-ssMM>n-pvzB#%xoqsc;|;!i*1NuGVRF8hjUw7^_>k{fU|$3Ul9!V0AtQ=Sw`4Z-)T zOQtvCraLYj;a5U44KAITQzL=;7l}nkB{;yYE-19H1ro@Pk)Y6(cXZpYAUrRj*?h9P zDnVJYQMd+|zCVzpxBX~6D+cHVk&q^P*(%mHS)Q%x+<9Eu42;XbRUWtWENAiTHJ@#b z{;GRJ{X|I9wAJ5l3f>v@yB~45gOrOgDukcr(I4fgXA?U2YK#5FQxcWF6EvDZK}8wt z;9vJ5Dgf(gN})>2*PLgwv?HOn{zjR|X}eNKJ$n`a$8J!7;gcLzZG1*_MI<7}@YEpz zy`=Wqe^SG*+vvd}X1bDBSc^m<5w`X(gpZ$vNdlqF+|J z;b$2rG%*BGA;od4K|}B09Oa`Y@u6?V>q5_buv#d@pSijhk-+{IUwL z?FA)8=1@Om6l8 zhM*tHf{hkAe<}-{kSTQP%`M~ei90QrZpnr9Mr(w|i27-4v6y|Z)0G21DpvHUGc(DqPkd=fq?8 zgr8??7PyPH02sd%8Ljd3-emZO*3zu5LVl)D9x^|5x$$I4&eQuyY7yGHXgLG48Yj$f z?=4IGEd=-TiJ*=KN52uSfCTWGxk+B-aX0PPi0@onHaLB#n@OUns~3?*a%cTR8)yu% zHn{Z2l8vgUbgAy&E3Vbz=Y!~ea+xB%-fDbSy%@3g;1n}m8?;Bz}+}_b<~xK z_XE&n$LS)PmQXexr=8762bJ2ND`*EZ%oQ3~M`LL{wXw_HV4pYMu9o?TpLRgm^dXt= zC?GeC3CBUMf4{*lHYJDX&hpBb5(j3*)?1J0TW*jv&xgIr^4b##ADje@+ZMOnC^cyQ zI5Z}k3*oBJGQcXHj6Ac&#F)ACW=>EuuhW;&|1yn4J0jr?SL=HbZ8WkAi9^an-F!&>C476+z2k)r;f{kS`*bbg#R z_0X&p+|wkKQG@Eva`9m@SS?~!vYnZl^u1tlu+t3J9oMo5mTfW8S-ILEm(Jc}D`f@e z0#4~pH)S;Ye-HkO$we+T>4)gkwex7-nX?d}{?j;i_H;kO@a!271u@Oa{mEE-Kh9^9 z|Co!E%&{}Q1HM{m`&UV4>oK%d!Xt+ipjrHl%5iq&F^N_>j~H%*cHLI_i(0pl9u6Tx z{PEBOjsBPQG-|yHHA)byoai=xDTDK)TM}wAw@{Qfy zmiAeG$#yA`TKg{DS+V?W0N;6ro;m-n_4(!Oz&Cc&yqA03&WM}~+f#Oy2zY;d z2};2_eKElvI2~^iNi}|gt!r>|C8P9@w1M|wDLzX@?(knnBFZ26_B>AVHbM1F77(GX zaOy_kKit7e&j}9v)UFL~ci%GHw()OK_`e#N`6vU*D;mfCr_}!ch$Ff)S3(95i3b6O zK!Q}-HzoLhV`aiaid}~QP4FPn0wq!Hii{=9-F-58L%)V)K`hJ+`C|)^P%uLs6IgX( zE-|4j|Ksx#pO2(?jAJ7E^AVP?!#o`sfh}jj&=7t$aZFf6|FeBpR}=o-kJj-pkzher z*hR)3YEpX1!d!IL_|47C&;p1qvA8V0WpyDlX;!?Dzu=*oGGpV%)~udkhKP_pAFO41 z?mf%UtFwp@A~JaL zio4BjX_el&Mwom2nAz(*T2)Q8irxA-30SGx z+<^ZK$eUw5b7$NO*6ca%ONr&H8l2CbAMA#rc^OB?Wh9S8a(Y8qG8U+3f%3c8==ARt#2(_gCgkYIk6*T~B@2hm2L~W@I8dABI0_!Ne4(BEM$8 z`AK1*Ut0Z|^hvf+;ZH|q#P$QKi{jV?oF!BhAY3iQu}0;7XA62*N>Q+L166FdaJEu$wn;a8 zw*UkOD0Ptx!!6IM6|*8WQ;#{}xntzlaTlZeaA|ni1pb^tvLTN8Ez(o1e47_UwdBPr zVuc5*u(BFyrBj)-(p%0Kd~x@p?|No(LL~0*g_$s8|6%O!H2_-LC*4xf!BHl0OYRw0 zOXg@IF%{kqI5&0Qqo#>323@&_1L?Er@nUfpD|@N$a4Nh$WiHIkEtOV}sJGKc&hfS@ zD5N?fnw>`E^8Zys`5<00+^U z=##$feSDg0Dv0n+Qf-W%PAF9tt9db)+8LMc1&>u(;mW#FtrYgACN59Qk2t(wI!H08yLVMTcWD7H$U4|ryx!hJ(=RvS-rj^} zczoxbrs*=Ds{b`Q;3VqSsw3wDV7r?lm92Lw-1?3u+R6@H?VJ#KnN6h|HiM{vgzw1~ zir8%TmGdG~Jta@i+{q^~XDy$1>~a<=gZB4~Lr3kmNe|M-Nk5-5YA3Gu9LQ56BgxH- zfH=N~gwuMvkx+32=DE^Uy>(G?VrCcH8SD)g{%SsCh9OOb0tidfYHk!*ZoZ2md(Dxt~|bCM)rNicMPE^Uz8nFSWu5e<9}oQ2 zMNqwAN$t_r_d9z!qagM`ruMMm@@0=lIy}Zi8>vlH> z{O23AREHUvTk@*NFbx(Evu9Wi)rOpR_jFl&S6gP!dvQcWY>r7$$Hp|}f#5e=K;f24 zGQ)T%bJ7KZ)W;QMl_R1|C<<12Ib>YDP}il=*|LI!5<@nOWM0vVsWLWqk2(X~UUs)R zD&pY=W)7O*ep1Ke-@Gk8>N=EasAwslzckFEl3=7?&*|$=EnRMozY^^?)TK0=lD;

gN%FzPu164bzJeG^o%^27_wHkHd+q^jpRj6WizxufQ-xv50>$~UcZ!KFi-G<= zCpWo_)SBeCgy(k-3{1s>1=!)S>U+;dT;C*lwA8zenvG54JELSDm#rI;^s-ZEqS5C|002d|V z)}U0!?M*fahzazWRa4WSTDdH@w9kUV57!+OW_xEZHsQ-Lo>HPCRQ!u2Q<7Hl>`LXA49##bHaz=jf*skS_i z=6Y!QxiNsqP+mOrB$aorS#QVyC7kVxSc@tsXUfL)P=gjMuc200c8=mTtB`(;qsI%n zN4mqmdi^T2Qx4+DN|VYv0yhALg)HZ=G^?gRrBWy)d^=af7=}zugZh9IKMms1K}9Q= zDO}tt*_f3cGq*rR3n)p`{PV@6XVGKn3pZ<=S|km(aLz`o0ph$yS41*L=nIsmMy~I(x|R z)UCrPIQ*2$xz`+bTS1RqMARvw3YFdDvB=*ybFo+FWP59eYKRK!X5M0!0i-+K!`I}2 zLto5WZsX^?g0V+$ZE<62594$>DJ5o(=1_GwcYY>8r^VBu11KB!3l(PpJ~lFnxe~rR zJA6V@3pS#mRlzMAhSK*a>`_UXy>MwMu-b;Z6=`o5{)PGRZjD!^0B_YI$~`-!H>5p@AO=bAD4DNw;IQ-SY2^6zcm%nr|%vS z7%SiYur%B6zTDwv(vQMBD@GnJO16?wLWgG2Bw!HcqN3OqprMG+H8{Kv9Qoo66acIRWP7qU-J?PHT zM#y}XEM-r{{Uk{ix?mU`=?!j`#(ZmYDOJqhP0GxqQEKZf;3BRNre#-8Q(IBuc>eg@9PBPf1KAs4!{M z(p5mlyHUu!5xw<3_R%CGvn9ti9MBlSPq30gYk+aZhVNU@Cd@T54;rhT?bm_!?!0l? z3;mPR)1&i#89wz2!BZ6{jStOU*9mDY-IWmd8577^h^wMAzzP+eQs@1q6&leT@jkT+2S)bukVoT! zPnUEh+vaA^I&DaLhIT%?8aGk2wd>iv53O1DMiswLx{^~a^0t*sV|Fl{CDm+X-vt zSLPIG9`3(P<0}LaVeLF~#R2uuhg#`J=TTqHu@=cK$}z+52fmFgpxuJLthP1REaGK= zPJveDgrQwb7t^K`53?i2f0O8qBud^6oS;&A2Inmb0K!qhF#F|1miI|3g7!zDJ!9b@ zM#cEv5k&k0GhCJVC5W`k!5vaQNpflR(!)4934;P=!k-?BfS5*#%(p(Rf|}yIRdaqx zYA52{^1p~p?c!2HqEINh;i@SK4orK1+VbQQp4FvjrH)oowo45hsHUOEXA6<$+50xW&Jp z`1A+ZN-9Iu@S$o^iULeyF?7gt`yc7lTwZ=r)F@YEa+=7ovzd7BZRSFqqYyVFjD8od zlEzLe-?D688_!*@ZSI~@EUCBOHP&rwE`OtSusjgsV^&batu(_(DN+1q-KZRkPlRlM z;j!{2uCt_QpJla%<57%!nr`i~MFwj0EN48{vY9`}4(oYsreDikKeW$peEemH{zHV;2_)Kn4ZeO*Tf+^QCmbHwR z+~iqY)#RH`)Ni9bc4TjLrMXJlVlsEyH%;gK{xlWBm60lH#kyHGC-R--l&dTbUc~q5 zjBo1CFvyolz`Ary2q9fpZ>y9q9s4lnzGD+i*x3vj-iUfri(1s0EO}FAi+?HppJBC9 zRifO~qT0Hs!6fS5=zOdm9l|^{UhYppT>O8gh?xA=DE~i--Z15uFJpDWR;(Zi079@49*i+K09+|?QPb}tggvU;J zK!|0lOzX1W&Run}O|(vl-3?~%VM>%Wg@I1)t)w&_Wl5-!MDHY;nw_?>xLc-w!?|@q zUFp7ZMJ_T)zKL74^ZIhD$dZH&_%)`Sg*TmOEM8>UcTBwF_~FFo=v_hah%HdAzp;}B zUcX1<=MVR>|PXo$37JNc<2007l%#Ea}0vg3W8q41C?wUh)yQnu#- z|NLM&?&l=&G&eGJ>kE~u)8K?a9UJ^$s_1W-0M@$_BY?|WT$po&dpy;ZTzO_HfM}-k zE?CYTGcg#9c&94qadQJs3<}rIeB#ACznyt^cQ2*0sdVw>EjWGtb~Z%W!TIS~E!6F; ztq$xiT=YZN0IIm2J7&D!7xc{3bEju>DyU7n1i%R2=SfyeI}x|8Ut4pW=U> zcp5`E$#eNVs3j9yQ(6*rz^_<82mbz_>@O8J&>`2$oa$zuZvMnJ?o37f;Z&j{BYMV~ zlc16v55cdwbxcgbiL+}0K1YhgSi?)bM5iRZ^=!kkj5)wgU#lW9r#nge41PH=1bbGI zgg)ch{;!xU9f>9+z_18Gz{{^1lJ6Hn;3{Jc7Iv17o{eo)R8*o6(=ivv{kj{+8cJY$3)SG2L_(k zqcGktMEO}SOSHydoFTEmRqMRUubaSq-dD^@VDx&ubZ1mjKBdZg>TK+BxplT`_=vfv*1ZF zMqCfQnNKf)xJ8s?V|MEn3Mc&6oWcGU z2HpOE+aramSXYRq`=f#1PjRLhUB~HJmSw#KsU10u_z&qLrrm#Y|IKPko0x~1Ovf+H zStMF=J-Ka5_U``qVw&gYGhtBUemUIt9%?PLS!DO`*_O?IwcFf?qs5RkPsP1h^|f3v zL>s#^oS!|BQ&vX_^$LlH+@f z!gK6Xl7Sl3xeDeR56DAT?6}(DZz5OObfqQmPdh~T7*C}5t)NU0JJiwhOBx)*BRr*7&Zoh%3Hgu?0q=|=M&ZZW{7Vmhv2_YGSxsd+2B2{0BKMAk(AU;dPkG?M(luP(e$)BP0O z`X!yr9448r2-qCX*~aCbe`tWI*mtRS^F=C^{`MSV1IgGT#DU#)1Gbi-mXgp%`eCnkS>X5K)9yX8+lB22Al1DGJ z!8(Gnag}T1o6i(gk5W{NM}x}aMpUesWw1;&|7nD825#BdmJ*H@#*rHo!aBL?kWpS8R3;_2I3xJ8?87xUAdE7 zzR~j9-DG8NgQ{OG)hWw-S6VN|jJc8mhq{w36`z{z$wx}O)ZFw z2+LB>1~U8R8oSsPEW-6!W2HLo{KJIK@a%{hT&A8L@%q{c>+P zom?++)u00Rt6 z<)@>4j;U;1!}4f_#)LS~4(fE62ITSE?((woU$=bhsY+AZ=o3k&vh8nEVgkpn{B=b+ z#qpfahFq9&(iJn+(2PPn(<>{OAkl<{<6lXmO48+mOc#-4)QZ9$l~oay`e(?u>4W4p z#-QKh1uT!~nOHcEkSJR7Fvoc?kqA0rkyFBR_kf_YQj}2)Y;*7G_`o51=)veX&WX0_ zVGjK@(MgXANEtpR>W&ItN@=0$KeyC;n9-}a*!wTw1umhAo@BDR7>7BrxB%2drTZS( z_(6zyo@Im2k%$pXMoP@u2Wl=TD)4xhScp>)*U1(BF1JPt?R<5-mqZ!k#!cM`1=O#` zlic#-Nu5cYuDfs79+tmSepdcr={u4WkvjG<6IhxTVfO^ggMqo;@L2iI2;^ii9RE}L zY(($D@`L(g|1b>XwI{*%_`f#4qU+rWCfc8}j7yTVE6RV2h{V=7w`@&JK$_@nYyD|c zd(mrZaIa`;#$zNIefQ?aY`Qtirn$blko_A^>Aj*VwWU4hDUasvbkdV)GNn#5mU3$x?{JmIEzV8PrKU{cP>k4qZuLlF; zd<2RJv#VTYqW0> zX<6<=GJjDfUT8hxx^p=hQKQl653==5Duw7rPwl<0Cs1Ia8ssd@`1h||oe=70&fZta zG{|?sHK~>`@C^|_OG`#Pz~k_9EW0#NnY1|z0R~y-sfq=w5XG2J5DNor`c47DDMfu4 z4lUig7hwQF)iZH{U#@<6Zb`|F7{5yeR>%7mq0CZ2?usJtLhcnMINAJbC_p#CoGoq6 z4b~$`nH-XuvuyRu=-6h$`uYTC{Ba4Epn#wS{tO7LK!F7-@Fz<$1yqj_2re(J(#*{3OrUFk?7b9xWyzCKAT4)Ue+ zOxFX?NGyR?Po?+UP>h|*{tC*hV%exr{@bIH7T9(Z@xszKYxl|vfXZR5sLX}niLfYo ze|fL7)Qvbm^SK(=jS-lsOfjiFP?RQBdUT*MNGpNT$_r+XmC%|+4v$eASEi|ul=^-- zeH0u{3`r{;DMSJ=_k9()ho}r^&W9ebpJ5Pk`S$x)-_R^ zW&YQns^^&GA5=tNmqAvb#re@7kO#!fylZJMdCqD+tq=gGVB2p z(pqo=^rG~h>TJUWFV0zb+Ih*pzVebU4FG#e3S!XUPP-ODwlaDK?kTOYzb5)NWAk?~ z`B&_Z5-dW@pRGKns-`~L$o=0X%hT=Y>1j)yFDYTt(%NK{o(`f5_8X4dTc}l7*0VeP z*F_&O9^W0g`#|&>-`3^EUtqa)M5n-0HOEZL!-lXC8wfJqmy;1OWSGSNaJbWghAs-j zIa(j_pWQK*tUypsco>0Px0MEe)_Fq5JbB}ZrCNft+&6E~_Hw>(u^S9q z?yQI;Bf_tqMuc-ef&D68Ep$DaGYGzVX(~S8@#7QQM~16fU<=(r?iyGg3Ih+~}39SAgM= zRI;DFvE77c!^`2&l;zw-gK`s1{P5+-{N~p36;|;M%oOZV9W_&{C0%rFAnKZ33PZ=H zMN80nR&~IOF@s7g0T&C!c9fmA8GJssT!0@#gKe>^cDgb9&egl)uSirJfXVX>sM<)M z#Ua->ZU;A*#ov_yqfvkS#8fr_J?KO|&TEA^wobcP3(4O7Prvib|HHzQF(gq=zs~uF}0eBzBU`6~W z2gQY1_ct}UEB|(O**J)jplQ6t?+?lTYdlb3<68G^C1;7Uey3;d_es+NL*O|6x z!>(RMMNLlkr=R&BSfO22E>-fHykM#^;=k`1yMdlO4ub!G|M{sc2Ux_aA$#rAf6eZH zQSG@nv%CL`M`kHI)S`}m5O&1Ue*5>|M>9Dkw2^OqT5Ua(=0=#}?;rCunny>q#J1km zLUKE;4Dd4_n7VYC7_U}j+R>!SN>pWDq(Ih`^*2NVS5UzvV5F)#zk~yB*iru$fa!wm zlkJ1KJY29lfkS95Fyip5s7Wa4D;}13tK@WhEhBO=4|B1J%6t@;=pgb zmV+$_t?CVs@BDVDU!u19hZ7@D0sN>W^Vglfrr#nCg>;^rLc*n9H)fp}XtZPHwbgTS zyYu*RIoPOlv zga3nnvh?VP-qJRu%3gD+Z=q+_R#5E4A)ISUPHhtiE6|7F#Kz*VfeeK#6%> z&b2oaw)~mQ?bD3W=>0$0d33Qq0`Kj9_xc{&p|9IZ-HuAeekduLnBySUPwci51vz^DRomXZ-Vy7+ zcX2m>_O37r+vb6>t0Z7NsY~3~A8t zVV$Ksd9U6C@z0Khx-hRT5LW&EvQt-J2VHi0r4r2_wf_G3Xz!;lBBd(*Tq} zu?muO`1xIRR5&R-wh*)5!*+%+k;z4MEZk-~p-2gZmCME`rn0U}? z7-Knhy{+%9#U=RoxZ50#CO?7&yUTm@}ISCypE|6CLQOG z6Oz}i`na=E|6izG*=r@5-SsuWx|7g!B~4H(_`vHQ;s#A`1T#(HJ1g$9X<;qv_J5Zy zwJ@ieOr>2z)kCsKtKdI7YFj)wVLN0`p{kH2xvd1;GrDf2<sDHX)n6-{{u{H{V8xK z(xxgMBmLqU{Ko)=fC?_$=(S!!7H+u^qJ86X>$nw4Fx0Rvd}q*3&8Lq0#2}7SLx@0) zwgM#OG#Owfx#2ZcGEPy+zR`p#A5?X_*q2`JBhh%Z*5j^QBIol4>g?Iyx>-AC^W%Th zCV(GUTBcKOAFfF`v|CwgxZi7!YqC4)1rZW^V^H~hAul|9`liMioX%&wkvH~z-Vvh6 zB3OvZ|6rqY_^H~qX6-TFU;n4boBvpI64^2I&YL`>tkg@CC>iHXD;?r~wjfXMiFv|Q z8}q!T!r-W0TYvFmojKN%MY;9pW~BhzuoJmub8!PJcp1*SdfIrsuh`FpPOE@I^*MA{ z3X<<=;qyQkCm_4+C~Br>zk(72dF0aVO0_gEjV_LfWRo=##FY3$l^yY(%d zOV~g&vKPqh?&L$yH%=|Fxl1oFf-4fyyu6Zwx=z&kGjsmt+tpl2^5PTu#khXY@5DU? z$2fpRIq!8*2S)pBMcoq<74ty#H?$>J=lE;iNK{dwd|gM2g+)X?%L*=)bOo_){kqly zur`l+W3ajqUFIwhLGqeaIqK7pYp*E(Y0`*~7vulXu~n_mCJR@Wv_gWE+pUP0bQLpP z^(3z(S17qUKD7eZr%O(3o$~bpnu4k=@LNasH8Z7W`gD^g(YlNP`|Pj*5x1~^*MC@M z&%a57I+Q?MI&Dw4^Jf)ruV~Re^}ByGU6wsv57QT+`^XzZ&Ad0WSFQ$yRahffLGpu~ ztfL=X?#>JT5vc$~K)b(Za-z4ZVdLkY#;oamcUVfHO0HPos$Reqqn>nqCi&fFT52y% z(*qUY??P615HNU2Pc`n{H*boM0D&DU1~!%`3-eOHr;6xFAU^4tywV`G zjec1Lm3s)W9pAkZ$`n-vMXxqpxKp@u9=>tNw)6-+R`x4Yhxd~=y_e+7k?w&!N=FnX zL5we1nMC1d7o%6aX*r{hZG~C#74)Y5JT~*lCfC!!oK<@m-pMeJ2VqlhY1S%FAB0r@ zfxn|Ej^VNIHyo81E0qh*pI7U5cc%%<^mn+xE8NI z@xQ|mRC3W-0Q&z=d=uy!Kiw3N!RQuc znrW^HEDOvZO`$)Nhc@f$hmxZB!;)QJBrd2(l82)}_Ain!uT_CZH8b&8g4vn)L6Ox$>FmJCRa}VeqFPa zZ)50`Zpv`deK4$woNe<;pSh3S#y}kB((OGOQLh?gQ^xw~q`?i-h)GuG#)@=N^;g)e z{XJ;@a8lonaER}^h;9A@eTt+1Z)KxiKN_41*Xuv13;zg`OX?-QsLy?ipnWl z;37?%$ci}ndOPn2>K8Qrn4KJCPpaHh^e=edHUU6Xya`@qCHJ91(Mslr{|D)Gn@e@{ zB02aMub06cZ_5~Ro!(*~81fnUl>Yb3t3gm5ebA?4K8=3&vjlP1p(Ou^5y996>0ce& zA9qJb!~GFh4Ejf(l|RRXU(P)5k`wR91r}qXCa<`>4zF&PSICZ z@K#7>xpabq6L1do=T^5AKT{zkcopunb0ZoSJn8hG`Y+QnPybU?lWkNK??9@N64Y*@ zI?no;wMNZd`ldd^!QTs>x@nbGdb7zY#+t_SZ<&t|vEAPQN;6PSS050m_LP&l=THE%l+M z&_BJZ??B6|qT!=IKC0B>s$Ffg^`j?@f0Xa1>PA^vmw^z~qSiDtzBFo8L@Wd0YxMM7 zmHeDLd_>B|xl`8$VWGkO@RaFU>$ut_mHgNr5p9ZYV%0YK6yS?dn^PO3}#-| zDTgz|cNPi|OH_Q3MGZm1IumXA64s`WOPR! zoIPG1jPy)To_CWuq(x*(P4$h$#67TFG`pVU;0T*U>*(fo2%rB6qCLO|?*wBAx2r%( z^x>5#p}1ayGNnG^B(+MKwKzxo(Bp85(Pni*#y4@8HTuZQ_lS-(*Gh(Nl-tAapQGci z{K#nQR*gkwKUN5-hG<{$naY~GoBxefo`V)Hi(T~sb>8NNuf)PeFKYj>^@czUwNtzG zg1U3AOxMw6cNo#bpg;%55Mq2bMfy_cjq}l;ue$JX?LRQsdQ|}!299);K&2^)<9=|oxT`^o~ z(5k!}jLi@?K)+$75~qEAjen7BGf7Y+?6L*7su*gTPdDy7BZ_reGexoW{h`7zhmB}M zs@cFLF654GaN3PQv%7zV6ZpucVnm! zZ_~ZH(SldthDq*}YWRG%OD%h*#oE?A6uq}6S}IB%xwIdcd&PMw3v>MLotB$|Y}u?- z`;e{%WA=Gl-2$5o6|W*z7m&QKgF5$b=Y@Z6onA=WYL8lYmHiW4XzR8#-xQn@c4!Rk zlvg~8uQ#60R@X<#zIygn8^SP4(T4$fzgKRg#b{JcCW8?_-|O9M=-c~Ny(gFSecYn) zVQS%mlFYaZUW^;Ud#jJWpbJN`$;f2xjL~T(Jj%}CfKt>Az!;7|xw9c+& z7qVvw;wdS~=ygj-@|!%LH`5JOVl$wO$*m3v+M3)}Dd95JWN{V;tMb^#aTT*irj(%vY8+M~V(X|yi4Y>&g2tknS1Jlyt)S?ny5Ud&x4ed-N3 zXECo$sI9WBVN|+2h^Q|*drYPGp6?$Epjte6mRXS|Y!UXtJkqHc!?8q#seH3wPFdt3 z#!a+7Oc`Z@r7oLHwPr$JKIVJYV3s?Ni%hy)<@vvlh(54WkbgtAuOuPDoa-+y(*T?h zJGh-sgJN0l(@xJC(wR0{a9F6GylfpTh9!Aqy#0MnK-)r4$<}=`LW)lUd-cg~doNJR ztz0HBQImZgM#uej^PDc2&9;zk3#o+=Q8WPav4WI{g7*;D?T~S(P*Rs%_B{BzJgTX| zsZOC9%O{k62IpNoKX>|!h=EDT^Jtkn?2E~{#wIPPE8^AuNoXfKxI4Enzt76WaE(@% zg2J>Cd}+aJZl^w>YVdFaNkQG7Mq?fpf7G9Q2rKM8&m9LsbF&JH8_;J2dD*E~DnZQ@mS*W_ zK)f=D*AIq4jhz)O!_^Ji7}YU8n`Ls@f5}U;F7QkJgDlm~fm-Df(V@T4!>+mtTdGW# z<8I?cWt$#UY%bOaTg|)^`o6waH5Q7|F+deM1VeJ9Q#92 zZiU+U;4$u}Gvrbsf0s}6MN;m2n%{_?X!}p*{l}%OAErV*h$u4WKe9NLxEx3htG9~q zJ$tdyyjjc63QNJ+d)d=E3VE05EtZ1VjjQ4l*iyC1e0#!+%Kpv=vP13Z)2^5>NzV~# z);JxBJqw>C)PTfP3Kg@Wm~ce8J%mDZjJ{9pJcA-OeBe_KuFRW(bF{zg#DC!*=dLn1 zJIL5PDZPy8(3~;QyC*_6k|j&qX~6KgB3bX(s5IgPau*{FS(_tW z;Ho#c7KNX&f#Yj9s_MqQp*!2FtOKK}?tV(^Bc}O*#*omkJ>?0LC6Vh3rs+(0PX0N? zsKvuL@FJ8AL$hAO)VpZrPDFR@dY0B}@DM9#_nf5TryWyZJqsaaPCaBZ{h9f#h1!1|BiR<$%VlV4C#0Fq!-A| zLg9AS&D$gU4y*=lZ{o9{$mkNOEYV_MykFN?;cSv@R`>@DZs;*kug?&S7 zoxSXO@@qV`T*_1oDAPLeOGP%EabwK3=?M0bW`+?mJYLG0-u9!e>Z+Ahb_wZsc0TZp z&Em=LSwH_(N*e3Z9fBhHIP76jUSKbcM~l>#raOyAaE2ec7Q??WJVr>?%ovW_tghS-p7Gu2YdlykdCN#3_(M&j)$6yLT?xa}*YF!8a6vqcKP{~GlRur5^&c|8IrC-^ z3-f9kh3v=z@~HtJcT~XMHLq0W=T@QSa~iK(d##g1M$pK}-&!Qog4p6h?ERby&IDx< z8vHQj@0~0ZPQciw)!DLqBTMaO>kvsyr0!K!tRxmUd1?_WauoV(k0Nur(o!W_4qBRN z;gESatgS13dM8r|HxM}de999`p!LB@no$OAcBtCskW0bZbN!Z?zas_BFWLWs zs6njy8=zO2K!Ndvib1I;z<_;&&9kt6dC1FVgXCp+>ooZSdO7KTEv55M3C1pE z?8)b{xca@%w<|M<05w+A+WM6QpQIBLXOcFavY3ugJ~FR@JfnP4Jn+4o@8*vlR0sEi z`N(B)R6+TWU!Pu`s1k(J?=vs-JNcRuXNf;O+g^~!{fczI9mM~BMe_SbuYfsF+je)` zF5Wn!$rV$iMQI$XG~F&Y2V^PV@wN(`$Z@*?+w8aHo-ZC4Ux`)L6z&IZyc%~3nm_*- zfdO0tL%H|1$*tgY0BT!4>%cFxH)c(Z3H7$d3eQXL|6BVhwV2^6*)Rjf*Z4*tEmVuxF8Y1!a$cnC2m0;bz^gz{Q&q-pI zsvzX5O1g-R3ykgR6d|OEJF@a)x?FV-h25_c8=;3GLL=@CT*QV+332c%Jay)rMw04A zLtFse+bkuuumh|)hW7vU@JO7?n0@0*dL#9hTij?vuM4EDoP{CD8Wt}o9M;;)&+&1lCvkxM1(7l?)OKn1!L-y=)3fp{0F#Q!f z7?I)D?6Y0?@{mF>M!Y*zMq)ao07Ll?(HWQzxA}MOiv=rMCey zs~j|Dz%n}>y?a&&T=nJdf*ORXud|tCGTDG6bVGy}D$@8?7W5*xtUP6mw&`(eQXCz$ z50g%t21rCO?bO49KL9dZb6)J3tX#f^;XRczMGBS!8kck{Cf6x*`C08;xwOJb0o>GP zA^m8Z(&fgEZ{W-bGnt*)7q(>jR?v!lo!L4VgU>I zt=UjhmN+q^Zi##Is&QdhM(C5Mcq^IN**#=WFF(X?H^mBDe827a zb6~aCruB52*jX(!q+!IlY~-wpm#Uy&wI5Rn!)?z3Y41*{ZSVc_JRQSeCeJ zuDv7_7!kx#8aHv>a#bSP!!Xi|>jittwHN86iA zb@d>OEF5o1DMlX7O2FKMvKc$oTGmM4i9-Xqw;)nR(I8Ldl#|2?nn74P0HjgXS1^Z5 zDMU-;s_|3+%28$|vMD~;Bs{QhDqgkeEftP{+C2I1xXLbDW1f|(xDtC;b2)2dR9w2) zWvWAIIdLd!b~4A#WH(+@_2Q_UsJ55f`$uGR4^Limm(x!PrzyQB_d4YvZgh5e(C=%! z{JSy*#9Q1|%hG$v=WdCke2P9kMsUF?ho4O!-Tmp_8Ji zATs25fGb#6EjnVlLAAYCg~+UjV{?N2*ZPelXmO#&02J=N-mcQB?0^!KJKBzQd@x4| zt|6~no}8QgqvF|vp z8Dlr)zq67+3wLeg)yx0uDKd6f{Bw`JUdGk^g(6wD#|IEGAJ1x{7`LeE$H*aG)K2Z^ z1`(VLG_Ioc<7Ko{8Dpm$M47r*4Beh6W3QWaY`u;Oq8^vgX`3vf{kC95tX?bx-fp&B zy<>`*EqS6AgN}&#^+Dr3?d8ujqC~gPN6DzE>_!n_>dXbTXI0hC?h*gT`o1#A#L3&= zaj?;YH>Pz*@3qhHyWLwMDo*4L>tIEw$m>Np*<)5Tr<8v;bPj4zU}tkT$_!W8#dk9# z#Y2b2;{-R@pkhFjkgd?aW7eQYxr;3M`dQO?YO*v#CMzsnP-f60gTPmK2;?o(GdHyCCi^%omi${c-E+30e_T+JR?Qb*SV#TpC;-9omZ zllx)!T)x2~z(CJ}4sRJQ50!&M$FH2{;nR(+(}@hNvQOT_%o3@?;eBpcB8+1f;Hh`( zL~`K>zsnIcpMJKWnN#njwze8v0FwgMclhG^#k%&h*aC515dtxEd+L|*rw?(W00=3%ORmu;giy{Y**?j5gDPhD)O4FCec*b(nFSi zC5@l4&kK6_HIZ}cYrrj7+_%BnUF*gx*UC1Q0(w z*HU7snNb4y$K)90SDHVYw)P}}5cXzkJ*#yNqZPU_m`rART_YXe8#G~t<1&c^WgO;Y zBe9eK3vb}w8bfxCTUJ%ZMW?F7LQ0>ZtDPfn)R!i%mp0!fQpJd6I^HVV#Ke$=|9EY% zg*Jb(0y#==rIqpzoq?5+)RkK$K3%d{8U=>QY3N(%JBr_~GhR4>0UvA(d_Bo@B}_qk zuEzlVaiw<6b16r@2v{+XQw!dUGCzXcg4&S1C9`Qg5^*gfaA>J#3KNuJBLa^n%Bj9b z`W0D85Scwd=ET{7is#)Y2RMr&HFv0=rlpR{^8!zk0tuoAPgZ+0HAPub+ds_B6QDqo zbuXZSz;rC@$#2RDA=pEm2MEvlwG_CtNpwDfz@oO4%b>}lttLCY!uH3k)Q z8Ot6SUUMn(qw?Tv_U9`?<|B(d_L5fze1PHYs}Wc;@8Fa)64AkPyXL|=udQBi zwW7D`kb>IPX~V(xqqAdqvsVtb_gWgf3zu;W-`_?-O!vvt+-I6!Qo#}&3gjgF=i^zW zO6b^+&PKS|K4lq4@ZA&h=Z9HjdUGlf?4IJeO&-tD-R>=(?{n09M=RsEjgVdShb!!7 zkPi>8Ul#C!^dC~=f$k=z_=Tns(s*_0PB&rxe&prIC~mRV@p6AqOQoy7Qyqj6n_Z_i z1aul+0p|l26s)xhr_uXn+xpluT0@Ze$xgG1C~QYoi7gK zO2aYSu1zK323cyCM&ur|QZ?mM`62tBwx08F_2?h#mOZn#;z8e>YF%-|l;z~N73h%k zHi?Nq_GX@NX$=s=jM%kjF*2k(StFf&dBw@t0_N2gZI3omv8{0S)=Kh5iwawwfW5Y& zt1j?3+6K2U#Mqt!x+O39Il^TK(_}$kcf%+oJ%U7WnJ@&JFa+<*4F^r@7FvIm-h=@L za^c4yNgiLwg3cgm3m2JMk@^6(xzhK+Qg&@WTV_4M|4+aSr&xC5H8m=-+lnVbEsjCx z54hK?B26z`YfJK4I+L>{bfHgn@^MQ zhvF9$=5R>V-YY`390;j!@^uxj$}2mx&uv)kV3Eo=#`5LT4(tgn6qSsuU+9Q7Y0Fwn z135`2?~o-?;Qrx$uL>H^LEkFvR12Ai3Eb;4g-QHvOH1K&>xi@4F5J2;JZ`li*_c;o z#ZicHgy(3yfJXc zLvVOsGDd@$wDqVA^vkxC@05`x{wC3uN*qstx%?m;o3)gGz`cxXqQAASn zLyxi%8~TwJ3~jEU2TmY-K`o2UmdQ4ONz*N&j5WWf*ge}x>V08uCPZ|oVwz+mW+KHm z;(vFX@eQ~)ZaPEalit;1-`iOYzG{$!DvsBE{p(Badcto}nUKW^+9MLgD~{hAjY%({ z-7@e4(lDK4ZaWwpS7Kw9uq%j;A0pKFBE)M>M;9m_htW$YK?hayEl{(hV&;Z}vfb5* z=kNZth(jWL$E6)V)!IXzBlws)AJqpU}j{z-AbsJMca6H-ExBsrh+-Bsqmk3vV3d zK{;BDSwI#GnF?RiuS*cbQ7{*a08p}ol12P_apX4oYBM5Qn}z60LT-Nk99o3FK}4WE zkj?Nu9_7`_GfO@T6uB&5 zTB)LQg`jj49}||$jkt{6ya5Q>A}Qfp$UBlf`6t!9`ot|V8rt31ntm$^0>V8m!1d}^w$9$!|sCtWiadMRPsv!EGL$7yC{H3(m>dRbZEQPqFu`^ z*ZR4&mhUN74ro@Fn^xm2R-{6Uxo}X8L>!H$f#vR6cwS^#qb%%X!wMR6@-<5bk2a3u z&%yBc8L6aP!l;L*0h2gQYh!lM-%MdP;#p`L;qsZ<4~!m&%K&ugV{o###B{wF?e>Ej zedytUM}31>Y_24Tr-7)YWyBlh_hxI9N}=Q}%M-eyFld%kkpOn8kiS#6vx@S(Ng{#t zHSqAd8?~42Ix@f)vXJj5-9cOk%DhOTFQaPa4-|%MQR;=00>pu)ozFa8q!lzL44n!< z1wLi29BGZap-@F&aP7G;iI?ONXUI9dyc088d7|x4L?1*h3AZFAI*F@c`${GCDMNZM zy6^#`F8zYh9X}TJ{V|puu(mX|S>YL*K7Ok%IveYkYx{(Fw>v%;W^>y5xToE+xa^__ zcLwPAgi+vV33G+Ew}%@|jU|X_C2&kSI$z|H&GV*fB(xe#RPRcNtn&~9B^o@-5HJVG zPwnbJt%OP9_FTc%2U*?S$LFU%Z7lWH*aqnK*+f=nn*2E{f^tu$50Kc0(`}up_K8bI zKi`#M)-?%!XIjM3x*S?}wxTpdDMmXQWEW5ja>3N2TH}s-J?Vk)4+|u{x-+X4_toL{ zLuyTZ?oKy_TgPLIytT>#Z8lI<{rAF>N`A`y)S-8ov=LaH5m$L)^P`2i;Fs$Jp z2BpzMoXy+Gfls{BQG{>AU2}7i*>Cn@Fku*ju!?DFwuu*7HlldQz!pI@i14e)OUdK2 z7pyO(yfL|K1k0Bq^=F6OihdKeN=ZIWm$E1lG7T=GC$q$&g%^GsTl-3NDEbaA zj*pfH4i+^dwg8pNbb{jeemXYf115VG_o%qj+9iF;Z4Jvv zD#RL^u!bL|uzMa9jVL6@P>qb62%F9HWP|tfFhI}hETl9!>V1XD^h@p^Rp5`R+Ml+2 zUMRXBbZx(Hz_-(lbyyNhf3&a^c$FtjI|h`eHsBX02#WLN6xakej6rYJcXEVl2)yT^J3VFJ3KCS~S~!B5kJ#&H6}F1(ZXHUH zwu*|13~J1F*bVT_RR)LMN(%bm@=%u6$xxS!K{+~dN*gl+3hYZhVF7JWuu7aLDEJLN z*qpT4?a>0c4MbXHv)@gJ>5^5FkV?x`I~jMtZCLM`XE3VQ$^a^w(N6;KN}dM5H;bsU zE>F7J)d?rPcxF~9%&vO2waGStW8!B2xLhw7)*O09UKy!F9Ph#XMW+{2i!Zo9Cxni< z1;Ghk8}Wb*9h3QdAR^6-HC!J6X_O838%t<3tJ|oaSxNT1ScI4$zCTxN2`k__T}k)i-JB{%k(LQ+ zXzRDj={TJ{a`0Yd6(g>T^Jlu7TJ(%{C;#$R9)!`)$j|q5nx{|o1n2KGHbramZ2ynp zr9yH#5p135EY&n#97}0KG#SO#C*C1D|NqUP)Cc?Bf1}Mr&Zsp%jzJ~Q`<>2GgSw>U z$usW$=ydeW{?wOmrZ!IB??X$(xXM0cK5zxeRuux^&I%4GEfN) z7!1(IdyPc2)5@U^Zj*T#@i&*1gd3yKr>)H1@|Dkk*%`Y^g|w( z=TxHIlYq z#xZ9Vn=+O0(#=H{$<^3o6EaGJ(7JFAhUuC!NiRoML zcQ;!9LiUuCFZOF_y0lx@{FH4q&qre%Tj1EA%G}?oHpL`lH8w2^GRdF{$%TVzk5b2# zmh-1NPC;bEAImQW>b<9A9SFLRQ>A$4yA0JEQma=fyC+2Eyz31+JDibW=9ln@_?Qxei zykmlAY;(`e8Nn(40{-FtpgJbsP#5qOs>qQa2a$wnA48#4rHBj>NcMy_wxB9goDxAu z3d7|~le+;-eafuDZ6z(b8Bp))Bv6>AgkB1>g)n0B1;6*?|NQ@6{USiGUrB8@>0K7! zJif%CI(Nun6c?|S^D&$*1FjrHe!UnJyvvh0xPpA5EX`c51=2p2^V!Ja2I@m0FBjm| zHHuwdAsO%t-A>6!r3?<*7{n!VFGAEh3FH#tEn#QP0=T?XXgPs5)m1ij&AzWY zfMBNdAzD}VW?D$u&UaU2*iKBUUHxT=^v(;>g*1kGn{LRu0vEzoFUxYgkENOwrZrKF z&sNFVvsK1ccGV1p5BT}-QH$08K#kFPUZ&qT+@@uS9G-Zd4 zF^V8HMjsfTYnF|>UMs8>1;m@ncKPoPJW_gT!H&zJyN_MumFtiFq83{hSB~)ax0o2I ze@g5BwcZ4lKVCb72KwwZ*`u$kwr$1&?T~%C)3~19?1sAX_3SF0QnaDz>pAk0 znM|}ugVqX2$Rl!&!2^fXw1!98D9A%x-QhZ?UTi5~KT+l>g;8MPr~_3*!7p<6UdSWY zXMqAo$C8TxaOpA}YD?1S46k(MVq? z#%xTmK%K+h(s?#xS!2rcE{Cy9vsp$K*y5=jNQN_!1M^m!b;VdQ90bAj~@C zo+Qi=iO_0gsZ+J1m%({~nPKWmYJ}@O42@YZQau>~kVaeKnBwDpjbp|*A!h9yh=}EV zsHlcjj;q4I@{kPTDK>d)45%2R63vv|wFMdwh5Seu(cyKwwNWLH(3Db@inj79( z9r}T=JzDcBjKDJhqOM7DGv#I<^1EKn@J_(`0tn`iqr2QT2bn6pjE{TCs(L6VfBMXP z5x~c~Mv8L9@Zv)*w?noWv7w^Hip`7@(jYnk>?5cI4IUpUnoC6*CD z*rL?D#lBWZka%WQ2A;2+la=3hvc4!-)e<2yt<9(5as&@JkD~`6JcJ2?b|`P&W^`54 zOzk1GqKD%V>fs1fW!3jJVd6X@6b|g>kzuo$VNQd*D8xAv;?ZwEP6+Aa6-Dk-^mWtK zT*B*K6MAMEIJDT(tTLQpdu=iI$DdW^r?3aNd(ks>;l_!Qc8h&BVI*`viHB7hiJ(?9 zOiUw^3fG`67!hAEP3B}HqSa{xEt9>yOfAC^J!+9}R%6#5r0wrAU7NzvcqELpA}$Qp z(t}#5%yUi{VSUj~2#KUCu_chzbY_1vkmnAs|B@cc07;oeE(`r?xYpp~Yw?_1yz-u0 zq%l95>la&#Pj$_Q>tUorFh)C?)JLkEI6n|Y6sZs~_LyXHiNHiJdC%87<(t}awk*Cs zW{s#yhzoV`dV`DW=jRkLIU7B*-7D0VK+bmN$R=_mgek7Xbxax9HS=0~Y5e0$R`h-gyUA+5XNfqba+@UFapNyLVQ_`^jBycqG>WcMeR1fg(+F zHs>{FkW1 zvw!SCCQ4ENaeZmLF)3lGuD#Y&hL%SO;Zm?Hl+@9L%?rkS`Go>$UY7h5OFMn0Ym|HS zw5k%)U+B~u%Bac8@^}t)DmL|5dn$E~OM2gI5)|Ua1*Ye|_o|NdoO!uBh+&J$&B(G| z%%30EN%8RcEbAZv*<~!Ul%CH?HBEIfqTJxiPv%y)@`~Mn?Ck^k*k^hv-TvBmr6R&a zflH?6$J&uJ?2#ORSTWPAOn`l>7{#E{Eddvw=|NAM^%>$Ux_aYW2uw_Apyp9-WQyo962;c0 zpaUpH@my&clBJ=f>b%4S7lar$8D}riGbkHlvX;ZZm|xIngbL@HamrGL^GaGcn(H#@nnRXPVT3 zCmOn)TehMSwj2vvP&BQMAlgo1YMy9&n2-}p&}p)x#VZ$kD_w~Vwk>@^d%Z#(j>C9; zf1n)abP$!Li*MBndgKyQ+bnB6<~-MUM3!zdCcda3*=8;I!BjQeD6e8NOPW?`t=snA zT3b^vlf*;`NjTnE)12Vhy4!e;T@#6-+wsFtft}K45oHG|+K?Nw;{eTPU${?sPYFpffiw$d@3CWjF zEepyJa$n$}mZ5{f>w99{@+`-YJoZ(=a?p>HLR!araGpS)}et7I3*zd_BgRgR;BL zG09WXlUadj3@v3KjZw=nNoXkt}J_-k3LaVpxEe7y-B#TWXUSLEq#&FY)oUW>Y+ei zP=f;eul2?_1c>wX7kQ}->2Sd+OWl6JQN=rE#uQ6XLfNXk_UmAI6CTYpbamXI{vWF- zi?%xzL#Zs`-pGS;wV9l>v36_9YFi4ss8w+J%sn8oj^erFcAhDhuf1~ql5buIR#M(_ zWYE)k?sU(^?=ZBLYFCmh4qp$%J6s$Kn-O`c1e@*yU|ii+%8m*ntLV6BC@K+QXeTgy z-bQ?)N1FaL!X3j{(}COwWHLa2&`4crl7?SZ-W3yK?u>&)$jf7BYUossZn?*SBCZWx zcSkI$;9-LzyvZ^pH6zkS3!d_;G36p2zRY9&| zODO!6BvC?seFbgLlQ0e&e|tBI$-<>BqAW3_7sx#639%V9R;?X$2l9(;5h|WlgTuST z{V&cUL$`ezdbeT+-mm!{t>(R|<$D*Zd6&KLgI=p|oc{qzRHVNRCh}YHDP{<*@iD}L z3wii@X;RVSoFUkwnE~a6$Ecs+O&Ok@kt;?KWVyE7L{G#OFB*fG#N^r<(Vq&aVeY0l z{5QM#VgLD@X#ekSj+d_z@Fouy);kXS@|F(d@BdJK=zfZjO2038j<(n@KJMGyIJ({4 z1yMHxaf_q{&#}dxy9FR@fjp5N+Bg6EO$`^i$W=AMpY@(Ty)reY|6cc*GgsS0y*Coh zf2_#)8ey3pas|~X=3UGgG-F=WYb4Y9xE<2B7dRK1&2?fiCfO%loONoZ&6_QbL6@?X z|DW;oi}-s6^j?{GnlshISGQg#`owcg10Y%PaBaB0nP zIfpVhS@gqAqeKC>W2h=T>=}V4@At~prWj)x8JdF1r%P#F@bdyyu%LVUeIcAzrf`fc z0o+7K8+TYM$$A4}f?AihEsgAS`I^+~_V&pW@*oZv@XV^fl@I@;XHPo+lqEExhnL~! zqCGU#TgkD;=4tsv9{eV^Ns=PXb?K?AYr-gMeC%Uhn#9=UhwFpVi77SsX}CyPzP_#U z2~9EZV_KQ@PNgY3yN|g7R&r#^TsV(1bz(A>?cis3$+$#Hpj1%2ZbjQagKqQn`Bze* z>_!8JJ2o)X=G?Hv;jt^(iy=`@#X@sY$ zO6ddFtz?$T0x}YB_aS;iL;{aGtE+p1`#~e36Fffa+Cie9t(t32qE)B}mKCg^zWKc*c}mYjMTp8^(*@qj)2s znZ=c4kj9w=1n>=1`7uMvSlY_LcRl0PEq>m+J-XL6OQS`c=7F@?a$-Ryiyk@_0-=5F z92d3x*y?7sko$uyDH?OD7pyq_+hfM7=>z7E@Oz?$zMP;L8h~m1N~igfZqtZUIu(VP z7moU#_p5LbN2(gy>pg8jc3J!NTA4i}BbGUAuQUH(?Z}7-Pc=x-s`kCoV1x0wDqj^e z=*Y44nA7*8Ks2yMmV2a^_+e?Ain6#JL-Ve*v37|+f&h^Te}2y0yYPlQ{@ZY`+O_A8 zp1VuABB+tf&pe)dq8>?&hroQtNXq)dAH%hTwxT^wM$STp!h!S-u9-|12=p9f=P?{Q zoIliEpcrL53jR@O_=wGKvQ)8+@@Y|vze5+6W?2{Z(LMhDkykJRB#a zhZBx4Qa05bfH<-eOJ6H3RG{q+o(i;~+^w^^__*M1#3S#>cd%Th@WZkU1%{to#76wW z5EAEv5oZv!yNDJkAdF?K1U7N$73h83Y1Y)!-H89IQ#B&ztH3nL*`uqtH@{w%#Iaky zAe*Xu{JD(Z(>xwaIajJ7o@FnV#@?c*iRa2@BRvqba?4MB%TSz+liy0-WV0f;i~JlD z|C&pN0xF*S#wpj1MBmw2Ygeqwqm#|l%U-KTO>VAJDbn- zAPzU+vIUJCp4+v3^aZYnp6tuS&R1|w?aIGOev#D1_4#OJWKPp+DxdHSY-u^bJ`ope z!yN8&&6bMG6NFPh-9igZl_p>c;x3!N@I&hA_vY_s5C8vlp=pC65q*ARJOl|Fjc5Cf z=}!2!9Wsb3vJDwt8;x{E^Fx`A-+%b<`Z%Ke931OJ^kq@RlKf#+9r+lx)xP`Z#?Qad z+VUB}zAX8U@5)MXV#;mVg#8Dv8J9HBFXtP3UC9nwVsGi*Jwba!z;<7X)cS;vBsMp| zyR9j9r14%yb2-3qtxR&m$*omCWgwMxs6zRu5Dw^`eZ(cYp! zonD|C=Pr+YhoGnrgHPiw;a^+1BN*zmq1Z*mb49iBH2rj;1=YWkE zpAk{viKy$(5gMMsRmmIPSW6AwsM3<|uSKA#NRQpvmQz0G@y=_4`L@%r=MCE%+(yja zei)M)bu(!Vm7|VGI_jZYrI5H;tyhoYvMDkPp{06v@+;3hyG`mJl54v8QjNowy5N`M z>Ey*@9PbWB2}OtvNHy%^=`iV<1TyxON3#jgVGq6zEcfDf?%PGX#ovW%?XlwBf;9u= zGPo|4W-*K~;izO<9w2C@Zj8GJ7mUTfMzK#Sz<+V%-1-d{7 zQ!L=D!OzRi&9~y2O?SMbUJ#?|NulmUpC1xR=~ysQk*9zex-@Lbjg)E;bQL@@6l2V* z2x#m6C=Gj>DmPEsMllQkFLA8e41xVqRm9%ABup zS`IR>FW&jw-jdG5L*Ufnc#bvw5 zgKAJ24j8;kfs>xYZDp%!&mHc{$|9GzQ6SnzoI}g0vNNd~3DtR(#iSaHgb}4A$v&BW zztfo>w{<`pAyuaiCy8xnsB)M*)$i5uPU63n$9N$S?tKPBEAGrYJ_ZjS3Q83|(TZ-0 z*H*PAO-`-AR}gii)B=;T~1OFX0j{8S|#1BZE zc|Iu0LaVWvG)Q^!EUQ6D{=QUDhk^sf1sbXqH*HEZO9MMq|MkyaXf(-|%Ef~J@$jve z{`Px87q$V<1xELF`=_C!#Z&v(V$U zb8>|84+|K2xJo{QZJekCZ=0*hEujo|PUQTabCO7!)WaIoH?(BBQXcngOuA$-Z?|pyjOntE$OpC z@*5Oihp~=IMapDCl3JVuu~ARTWu1H9e7FVvK7FzXU{a>eAz*Jhlu?ETt~uC_FNft8 zj}L$CQ=)D8Q#hzQ`%E~B?-gOV)MfO?!W%X@Qu?^lfADVxsPYVo3GJwQ?28eT4I5kJR-pV!EBn9=*%Z|hpPIVZJu>K1T@^nKEX{ zOxUL&yJ<5ZJTHyqMag&Z1S=|$TilL9q0E*x2FoQfdfp;7p?8ZWqmw_C+NPN#Xq-X! zJ6w!N^GJ|h1Q$&3+NM13EMLo^?z0;(ofUx1Q zDasMBZ=H0ejO|J({&pOonz!jvWI0K6up{__ev7PU1@AVe4DjroXH6jvQPs6)z-U<> z!`+^xF4~mG0}5)2{g9WMzEs_8OT@`zFkq5+}csSI1@ zvF4Cl#KJ*ZuowYYvzuUARLNfHQf`Xwp59!sDx}APmJV|z4pnseSUig9^%)yf)o%;5 zDHg&I)Nxg?xN(sKz{;{MnjO2n6#FK0$f_KS0304@LXkl>H^@JrBM+ zf4I;B=+&vL-11H|K&NrMe5yM>9=P;HE*akixl}k2n9LzwRsy9p%!7SAO#4fBL-Ae; z`|kCWxuas+v69=H$S{@W~cSLsyTTY$w)eVTc7kK0#q@>(26I4?TJRJ zSZblsfXaZd;U~TmWba$7eNi_nr0c;V*NW^q0=0|KL4_xY8gfJI#FV)HIUl>|9S%OT z7qHpGJqJuJEEC*EoB6JpDBK&$cn2-kPFM{M&j2b}v*$Jj1w}vI=2NMbz|Lgsg&-X| z;B9D1JiSS}q9mhcBh3Lx)FP84a=EmozYyl4dc$$_veS`RNEgBXSj5Z830{FPHCHIk zXIis0SpGrlzH~OV%|i_%KzuPGkcNA>_NbWv20#LLk=@yaeK;!?VuBtCqxd~?YCJ!b zcfL-}uAZ=t5H=kLk9~Mn@IBUyKcW|&imlxO$}qleRzd9SovWx+@O4v#s9_e)AXeOPrKV~h?O=)OKW&rd29V1r z+rg{G#9kmfxUC_fU=4S@{z#~cDepOp;;sn><}Sv)H~Q(JABV)$G-t9M%3^LJ7z)PJX7X0)5X)9oRVFn z?U255E0{GeL||3Q&x4Q;CED78<2-PLt9O~)S2V>4HSbCe_Z&aEcOdRrGh{~sF8?C$ z>)9c9kIy-B!xs)a*I3+$IlqM~l#rZr2u)>~$S{q2Z?z~{(mEX(lFgjLoxg_KF|y!h z#j%5J{zI{QpJR zgqQ$AdmyGv$HlYq&4iZY3x&Erj$$dHDWyLm+gWp;fxh3yKKaM~sTShx7QAfI$Ab7O z6t#7*W}aUGzA?=$TllK!*9%$6|MW(r8wcM~M!S9C-1;pWpfU{#G7V;&1cUiaOH|*Tr?=2$ zn*l?Cumv{wik;2;G=i}e~s_fwA2o#VSbrhNPg`XG1dt#xIFx=^0m zKoOip$`n64)e=iibv5eXDx(G-LmRs4b zpoE6&@257Tll!pY3+1O)Nq%AvHXp!2t13qwTigm21k}4}Yrpfw=Gt}}(Wp}k*iNaP z#vI)#k4Q{Drg_YS&-9reXytS0!wM)8N~Mi%7(^o3mgqU9x zCMXqSnp`xTcX%xLa5)vZ_21VWrMXg>dId+0-UbaB;?Cuv{=T1*->T{I`O+tU7;*n! zKmL@$o&NsRY9cBtT)`~@90YzC{?Vr@7X6@#XHoZu&EEg9h@wfM6tu+ej-1n-e^JdL zNn@=8jONYJe{`#@^wdVn_`Wy()K)x#!jF818wjayQT#eMhzFWKSlni^Uwph>^lmiE zW!IwGT69PN^|IuSdxwwYbxgnZDU80f2gKFz^~l{<_DMpZLwdADGcT)cu`%w($;h$_ zK>1+5yA^?dpng*pHD;z+QIR>FIBt>+`_ISq)|fN)c1J7 zS)4eUi0(pa`8-^YYt_xO2zt*sJC<974)-akN1>k^WU-3X3O1J08&AG0pJrh_u3fnn zsCxR@GsEJfM|kH$&f3|=hXWMx^-ODTaUE^%rEACUEk*5XJ}2@sNj*_Kg z{<`sWj@Up}5}G7my@UAhs{CmM9k+h%bIn_^*0Cs^xDkznpbhY}O8gN%<^a3?y)jVz zi}KzdGZol0uKubfkYmbQ+%YpPQ;d!%$Y=`pS_cd-#F32A?xV+qALy!7+CkJcq_j#)K!MKe6^tqX`%oLnh}y@ z?0Eh6$6X$9>ifreN=EfY_dnfd^!9Wu^GM4CI^&baMFw<(sRj1% zUokmZ-}KEZ)J5!S(jkpCH=D&&daailbJ#4aF!OKs+LT`?r>`8kuXnBhH0*Hlf`ppY zbje&@&(!ihq8}+ySx+MLjDMhcvMyHtAL9W?8U;uRQbJZM>4n(QqS?jkWi9I5TnP~s zdudxF&upu}AjwsMUL7PL40Y63UeH7RF!Aw!CV~XRK3xt0kdr1sp+p?gWMaO(;_RQ? zvlsIOl?HVVH?#yP;)xH;#EEDi5UF%Bx2vNERuC%Vx;~@-29}`78}CZ3 zg%>R~@Gl$rI>e)2{~SFpnyI@j2$2O3L`p_>F7e@p%n2dJRL)PffInZoGtdUx-|^g@ znswTnJ5H?}aprI%tvAHf8@mvG+KT{${#-H&(heVcXP=U!-^Y4!UCb;+ zx-sy}{q>>cX;sf!>JQO&$8k58Ezh+SUS^~P=no;sr4f{XcTo&nfK;kW`f^l^90k%R zu{=!i_<|<}dO4kd|Ks$JE2PzDzWQz_ohM;TK>^$3%!pA@;C&<1J4G%*RwlX%q&azHuxXYjY2ZU|N6NC(ccC?|wS){ENADomG zJ--D;eks3LmZTdREV2w>h6ml3`nRGLRq%DAQaEW^W@9oPV4kT$lu8#uJJqOC9+f+8 z^2K16=^HW@;oWe_RVrOoN}*`OT|+sWHSeBUG(BXk7Wl2b6d$ViQ+_4Z`FAkw{-Zty zU<(F9Vt*Ehtv(`)xtW;uEou_nWiSpvoagaG9(M}8G=2U3jT0l=vZw56Bv;Plbgl^EM9{0K;xF#1(>KY+9XU9$o%7jV9xO4i{AmQ+q)r?3APxjJl0RdZ4S=f7I_j*ZpNy5Z-}WP< z5I`>yfG|pY7`QyO5MDJ1wK@zu3#=sc8zxCQfTb}+n7}p6+X69c+y+eS8rKNOF*R$& zWN6fIX?d$$WVj~)HGmt;%dF$paLWi`Ctb<}o)bYG(CubDC}E11qA{$n0&}pG1FGWE zj3d%&A39dT2~BS9Y4dFBuq?oA?lg)zH`Uin6ZVXLYA;#}5cKF4wU{S1F-7rB=04Z3 zwS??dgzt@)FMPJ?SyW8En$G^ zphAIKL^cAYjvx8H0ze;Nq+TC51NkX1Fb$8h?wH^+nvz3oQ+^#TpSVv~c2ty_Faxr= zy4C=WZbPO;%uueoQIip-tic6uAMM!TiE)ujw6J_=@$!LWKlInF?Qru*C3&YoIPTh(QJ}I8{a;oi}DoCkRW8ixOaW+$v@$nynlDsC`U6mm1G+AhdU2XKi z(45ytm8zXRZf6ojl`nS9NtD?PRko>)yd-D3HH`a;A}xZYxNKl`7khZ7nJ@(fhPYX= zvyj8Yx1;!yUek-J@=`<%8`t=db7}PNZz3rN>VoC8L8wo=z=y(pTD@RrrRsYajseBl zfVCOetPyNE)&ub8_oT^d;sS=bdHrnJd|if?ce>s{qa%2u*M3u*)*E`C;N2#t7So?( z-h{&|vb5bT;$|Rr_jb}GqWN9^C6`e3Oy)JuTT^9)ue_Gd(CYi|dRv|9>$Uywcs1Ff z#gtNAmS?a0UbpH>K|)miB#YDgBGij85VcHexhO9+-o@*V)BMCaf?kM@YV_+Q%;zHQ z7XP`yVWzzt8$sf0NUa}gYBAYQ_Yd%J>$KHcYOSU>>~mfJ0N_7Tt9N1b{zS7hy=H&O z5I7i6ZXmLBofW;3PdJ8_v(gUgwKtBsHYG2D>n57(0`Wa60^6aMHpd~n1>h?00u($1 zpmJi@Qer1*mq5v<$zv`Th5h z8CBFwgpO;A{9|98G=5brF^H!f`P!wP3DFVfW?s1^8Z9CkI8@nyx->${z6c6_zGec1 zcN`Xyzqp75U2TF<|HhQ1#*!wKGurovH|!9YlC|Rf5PO8)Qn`Jf4rq3JQW|Y z+Gc8A9&C%-WGa&6(OJc3X-Zp3cl1FKMik>bqHqz>bRAv};P|Y|RhDLu0XsOcE4-Tc zT9$57G|^>(n02i}*is9tR6l8qr$F+|Yw5I>svV0Dv|a?qm(j3ZjWBw`7!Z9A{er`<-g)96v&Y4zHz ze!DA}t7M})qY&H~@uA>aqxewq$u6H(9FIP>kSC)cW9aXE!A!V!`Oxq77+h*VDu>(0I z1L|ojj;xkfs#1GN@;>QZ&yoPD*QIBCx%52U3hr>v)UomNLARM}t z3nwyE7dr}#?pmdlAJCyGx*{<+qx`T{PTrrNX)8F6bt<6!s{?;ERLI$8fR*gew(Hf! zOY!CaUT~x}nDlwPktS_YvRtKC4E9#_o-8*kJ~MEuSEW2pe(WhZ?Y%7#?}Qu*K@cgm zy%IX#qEufe?kuuE_Sj78`F1(!oON&UxQNfp5TAn>QH~chM!0;r2jfIEsDch*RZmco z`D}rw#3w7v2Qqf^@#n&nKXF+NhYz=(d;2Vg-tb1J{_|J~OtfA-*Tz7=C4Pc$nAPOc8 z(4A;f4W|7tZ&iVc7Rv0!YX}E$$m$o3*kg3b{#RhGU(jPNLXoC1pW7Quz4GX-Z%!3mMEQ7y>|o zWV}=3UDC%wPnCqpG%kTVp`*y%w_Tgzi>)!ZD3MXJQa@K4=>4uDD zNCz0u^7-t2$<-+uc*vQ&mU{_wNi-(!=E5qbtSs`H%9xP4V!jI?VB%ms9&}*hFT|Cg z{=VRdq`U#hxw_@`f@XDpeqAEr0gx<jsn!{#3_`=cXi2Ou@%1{6mhc zE)>%~p&;JoIc=JK@V5>q@CPR?PBWabHkJMl40_^oW|U|AUS9-SJxCpuPRkLsz0RI0 zxRZ!&tR5fIha*wrOF{O&VD$Lz+31@I%0=gIcA~rT{zjJFZi0==y+4M(kF~x&Unne7 zH`&Go%Nc6hzKI79{Pg2A^)L#aBy1yU+hak`Ts9cW(i%(x9Iyteo1PgYX3a=Ak^s&T z#}tI87XiXrrM2jC6ajTeGvt+8-g)b@;jM_HnND%!47qHexSZ8rfb#r(OmbD#eSM68 zWGY1}rt5OQtZ@42&3rKZ2`Q@b1!sReWxC7ha{NBJdH zYcsgIwM+JrS&NRx6_&@9ycKg`5891#bxW_le@vm+l^ozyeoQqv}!wbM0jN8p7v9eT&q4rBS)BV8@_2*yU#nYevGOXXY zGNz3)|3B=)}l?qro zoh=BDO1zHPbNzSQXT`UAYkP*zwE|feYc4^pWge-nuQ~-3{%Zj}&?@hLNDs`Hp(b+*I5`lL6a|gc%kMa}Tk+fD`SDx&7@-LUaj4|!&RR|^W#tos9P(YScQD{7ydaP+Ct_T7}uFeYAaG7K| zAzElYC4ZSw3IRXi*eVN{JCi1K_f0xUp@3@ya#;$-T1%($mK#~OChZ!Mx5*3z?%RfP zv80*Xgi-He(+ZPP5zw4QMP8&lYMO^=3(Uszoy0=y0)R{tNK(>$w7^A<2wN6e*J=Qq z1%%Ti7E`15vBe8nAbBSfaTmT=cAnQfhXum)vzj$Z*J*?`jdq;M_k3pvc%+#QkTMuv z-il`?O^Y;^tm&_LNfbz^SY^j1rDZ|;b%!b_+n&?3j&_n=K>Lu-ub52nyY3E0>I@An zBz~JBLgG<6mT_0ZvqJ`8OvIOUTM2vFun%4|qExfc->!T+Nk9Y9uNuy+q{gevjv51EmGw_Q3+9R-(?NcOTe*-=TbBA zwW)VYDm_`8hKvhW+i>*96LChAH1KOwFPCPFa&jcsWjPT`c`U*R*kO7@2S+U~-SPrZ zv0{;a7IM{B%Njq1YrCC?W(%L>7qd6zHTOpJ#?mcF9rssv#iIAW z*79IHR22y}fkl`N*b|9HOT$sKec{n#NRo4)fB~=zXqRII6P6)@OF)>z7HQ2LsE2@TB+_#!+V zACcKuvP3Vpgc0oSU1s?(Z>!s3s%{yrbZu{oi?!xgj@dN*6C)ARvMYwi8&ch z>%ms+KC}+h85K-6fC@Ic&5A8^+4Swnsdm+n--0-&-d+LL&e>PBIv*SWn-od-rg;tP zN|dEW6A#|WK7$L9MJtu;Izvadxzti>tbGVeAzk0B#kJDZ)`b~EXM4GUJzSdQq5R8>AOe1CvPX(l(@T_ru9HuOw=k7a^-^=kS*wTaLbx! z=hChJT`!y~ALP|NT)NCZCG2Yzmd)B1zsodxCpQN__-ziTY;cCBtuynA=KhnD6R2j| z;zVyE|0B9wRi2vhx8Y=F_h+qr{@-2GF+Pj>x0n9zm{55lw%#dBbR7iicfZf5wK!+a z&h!f|&YqKO0nZjAE7d4%Q5IoonldJqT1;DKzJMKt_=gsMp-Gb1tvfD5 z6qt6Jg?CvG`_b-k*22zED-h^jb~x@iG}72DZWkx8E~yv#~Ig9eI3}R`qUp!l;~Urs2dCU{t@~n3Q5A+*#+5wg8eu|$P~iu zsLc1r4_&o`pRBdd@A#E-Gn22FydP7VrXFSbq<+il?;n+)*W2!DbtE%$r;npg>IL&aaO_I6d}fnxAoF9E!oYigcNcZa>jI#M;}o zHbWrY45mb@Kd`@Ef3}7F8;kx6alBZU3DOH(6$NK_rBPqmSwjEdkcq!pVt?wBrTmH; zb6sZa5Umvj8*<@f@PaMT{(w<|@#Jt>`g66KYp-%gMPEAB+)+%WOMu7CKHdiR%Yk;2b3DWjj1JU(Pt zq?SF?2_iqm0YVzwIf9WwgcEdh@`m&ph- zpqj!jEYX~M`2ep80}2v~bztR1Jh)R(a+BwiBqn_SA)>3>jUX6~h9ZYERZ=|rFIUd9 zEc35%?maAuizkz2^2VR$0dllqA2m0+MK;`jYkcYvWGi;y)0TR_?E4Q!D5AR)5Pm>FbncvGxE%{)Lbe}pCcp?U`8^gE?g09*L8{p8m$H^GiBe3uh#4nE z9~;@ln1@F4mA0B|4O=P4=L-rz70pWt1RNTtK-DkdrujARMvDOH1v(c#0Ma2VRFuG=ePG;o4gM z*=sR<{|SL}S^FzDd>InB#BS=A!d)A&E8!TatBz$9J4Fd0|71)Fkowg*>QFiX8ZaS` zl<--oV;-2(4B6=0#1nNOfssd2+x^O$U?OAg|2CX~=7HcwUy_x5m5CXQ^OSKmiG9^I zE4P(gR5K21c!Ms%5)G)KI2Q)|myyl`w~R9+`(k1C#;jk29CcSa0R~_~-&_9v=oBcf zMaO$0Iqou;wkuz`!^~rJ3_FT35Ln{MNH9rRvIk;WX>(#{)+6dx50(e1h^P(h&!ul z8!p}Q%-tD1CL@vU{uz_6Ap;xi<-UwWE{bPNUROMwN~q-ehPVm}_?|<8-diN|Ag*y?*A8ZyRPNIk{!8n)dx{Cwdj8uDDmybu5B-(JknN! ztWk_ey-Nx*%-Jt~P|zh@T9>J88IJdhSzq-Okqb3{dm*CL2YBU)jNa*=)Ey3_U9Q!2 zKpo17nDcfTV%{oNygeVni3z3rUm(Moq)e6w*B^TrepRp;o%7swFBKa}d9-*bCLFQJ zTU?*nHZrc1g__a-9Yy3*q8sRu<RF8R3=6GW@$vJ}oJVE<@BiT&AI~&)VE}M9HfT!Qh4DVrV#|eQx)GL< zC}9g<;(!h{)HJsq;Q6qyv<&b<9#7skV(pejF=Q`Ya77~SEZhOy9p3%+4f3qDmQExP z+*THuye)VuvP$-tDYDb0C?Gq?_t_v%g{|0L%bw8jb~l~5(u+G_P3RsQQ9Ltp&$q_u zoR(E#b=3iXcJ53Mg@p}!_AQAT&on*yZ202m$ux(!G*g5F*ykE%&ago(cEaskSNw; z>_|qwKC2jcRl~N<6V^k@2T+KaI^ z+i&tEAs)IdJJJB2T9>B^0CeUA*ZA3DFn&j!<%$3cH-vZ>f7lE81ChJD78Dmvb_vV+ z!>q?T{e&L2N2XHo!~0lYgpXE>-zM0c)8>T>X*cV#{~Dx_h+muI@b2%$GHE|PQ)Orc zYt6fC{EiVyZax#IEKbmwgtW~V>E=f=jQEK6au@=ObMWjXID5BeFx1gn^m44{*8CIw zDJAfkJE3mGL7-}!)wF-DNSd`tw5dOv!hJk_v+I0$n}x&A^2F_FODP0xoCXE2`%#-t z5sjfw;O~*dj2)4!I{B6*HoZdR)6?rC42ngeVbHW8?MJFvog%x5R<-zE)_GAN1=#prFsClvU6om0!5t<+138l4X&aLu( z4chAW_F1Vkt5|#TFRD)L#w3b>$!+>URbp0V8SDi&b>Y#_U?5g2X{*iSGJs*9Md((z z`n<%pvkty1nQMB3`K?0LVB-OOKwh-TI#~r)tQU{5*RbsE9WE44(Y^!NjkIaf@Sse8 zk2-h=Xic#zc-sih826cEmjR|}hpG&36QU$cjg}`r(nql)P=YIAfpdE-YDq5e;4(|I zc%hguf(Mcc=dHUp8szBEQNRsz^;cDobT;|x9(%vK!jyfsl_e&B^?7Yi#9w6%w+UD; z@B*F2LM8d9e$o#XKExq85F2dmYBf5Y1LSa?b+e-;rQF!OR>B0I$^V~s2ef)3Cn36% z2?`Sxs}Ti}xnT9EdlCivF?hi6ao=Pk(v|R`=LACVr9)0BZWj6p=~k45^6LxvlmHqF zag`6Ba1^-45D5oUkKW3b5Jm~pksh!;^=uEse%vEa_XCDoizG%oU+uCn-^D{9uzeb8~?waW_af7moH- z<~HXhC|Z*ixn6szCwpv($KI>vYU`vUKX|4IoPQ2#v>h0+c}Ld z5Ns;X{64G0JaFv(ZKh$Z8utb97sd?LcYMm39vz1!E}ZcNFnh-y@`jI7V!T-c-!z9q z5yuF{=tr;TCRl7F27I<^`+Cd zEAenP5~AZ@xYr@SMGlAT6p}j~;bXZks(097Fx{Y-x0MKTvL@rJCD^X#Z*l?K^O7-n z-(InAZs34uf}s&kzsI@95_DL=9W0&tZha}X6U$Z_s@ zkOMAn#ytv}x#na^jiTE%cL~r!(10qmFDlDhNI@SwEfh9$(>~S6@y>(q+BHR`7Uah+ zw>f-CrERQCxpZoCrVH>MhI}<~+n#=!&Cu zEtX*{x2}IrU2&DUp{{QvN53u~T|7Q^CB5)oVSnT1#TG3j@74Hz%V z0>*bF3jD>X&4x2Asjj8@{!>lI1xXcFHc|WJtFb-N%OaGq)PdUI?sVNm>)nkk>X$7U z61|PGY#DqJXXXo>6inXo(k*NUJ85O4p7Vkh!7r#;IHk{sJdd=wuxZ1=Fpeg`5=S6}VAb!rw(wKjG@c}5wzi}6^h z;9)BBNTX1V1asQV(frW`pS0S)rVlj5s|%eU6O0Q1HU2g!m3^&uJ0Ne6gZ%K9)xp-} zR?CJ!YR(XPBc|q7yfXjLVdpb zfnCXoc^TxO2GC0_hmbRC^%hI2OBbcUkt86BA^-K$#W?EMQItJL1fD;i!s=OjK=y8D zjDq%%{cVGwovPKC^rh$4hEd%fGChMxS3i`ctLUfi7yivHhP1a~^7Q;n9Me|YyyS!| zMIq!DL|s%^Xl%8Oves3Yjsap$Xw2%!ncR*|s^G*K`MahKpts;diOP(hQD;*4#5gZ{ z?OEX0es9?|(N{CNqx;_0JA~Y{yxpNcv9!PPEromzaA})TNDgG~ygXAp+@UcJ0d=#u z&7Xmc@z*k~;-lN$rH10QNTL+7gyyPbt~ zCOiUg2nUw6;4k-?_-nJ4rHAT2ou2~ma0J0Z?&TjBi!@+P2NzB55kc=xBV%k8t4ac+ zcaOP$IR|_Xm-GitI)77L9#lNi8|Fezl;AP-Z0e_;jfI$(H`7Lr`hr&**Xe%(}!f zG$Ul2zig8AeLdW!B4rqA#4E+pC|6Ni*SV;w|247bqOI-YcGw--wRs-)e4icM3`{34 zHvsQiGZ?KGXGBy=Y8iK*(u2sY7a2f^@DfR)>ms$S%dp~*ki6zYtZ?`4&dKRB9CA_8 zuI%aT3^*D{vU#`OEhoPTvvRJpcGWkIl*o9LTAU?Hh^WW{$%MXXrQjSY8Ni>y4WmU0dH-vcm z#Xh;D=>)-bm!^Fe;HYFs;pbNiQGTpn?_6xj;m3!N0*|H0>6x3E&f42~~ zmRE@Qj*#DNv4|d}8hvl@KYo|c9^EUEV0*h!%!Q9`w9Bi97!II!vl-O5FR!!^RX3J! z5}nrp-Um-61e`*u?w3L}$gDc2T?gnZR(0xushZN;+^QRDy2aV8DuA-%K1gtRYPoZr z>&ukDyxU3z+T8U87^cd2WQC_E9s8zgB2nQ0hN?L&FLrUh?5di*uTRx$(xUh7hy8E; z1jKNq%S_(~u*AX$5Q;u6qHGgw;bQ4GI4_nr^VhS;Zzn%n1J9c(sPIS9r+)>Q_|shd z^x5{^B3aTT#GKl0$*BhNH#^Tkq|~}cwkG;k@R|`0%xt}>@%N$?tGHIkd`ByG%l@ue zv+$FVrkj1MS@i89kuz+w6>KPtl4Ckw8U&|9r*h4^tZA!6YW)ai2z4V+qtiKrU*b*c zvKkR4SHYZpnA6a0nfYW6&lfHLR}^m?NvATPR>v74o)nHycq1h7wp{KSUlqlL`L8Jx zy(~wjp22n9K5@j^u9d90kG0`H=ae1{y!}o5`?vnnAGqoyj_12oi%@ zCb02*YV~x!$i|1btL>(NYzcPc*)>PA!QFP}a}yDx+t+_dtzZo9cYRK*9}X$bNx_3nz`$lMbjp0Zz)d7sV8nnPWZQ;8!~(6DBO3PFFVp739u>c2Zo_Us_jnK3to-kciiSh zOt@C^rQYp8Phjtr(^xFIAx-fWb#`Ez=oQ*fbmbfqGo8bNOXW589th~2SPYDuX@ne- z5MiSrUxkd15{F=LZH)5Hr_eJ+%WByIa)*fTDmu`xdzDUM4oTco&X~a4KhwAM*#o($ zf{*y#1>E)%Sb*W!o?vrmPHdi6a$?e+n2kB6Pg(%Fr=A3m*K z%ylIKE6vBXc5>p`QAs_Y=~B>%*#L}7|0h@#e?G^;SXdwp`6$~n?&2TUy5soIrzxoi zf`Ixgp*>}VCDA13bwOPHMU9!+*PcGl=|dda9`$67>4EbT;LMr(Pp;%<*sVIP%-P(U|LUvM zVN+FBS)gYnvMR-^a%OR%CYkvY+&@wczOiVxt4-85Gh@Y^EjA;Tnt` z8PU0G3t4PP`=M@>D}j9Lk+Guc2qp8($xLodHH$%5BzWtN2<7?+z_3?*^r0-hG zwSsWZv>th@yzm0v>53GK1Y0frsY@F^cAKehO+wi;i9u{TjmrgSg~{`TxdL3sZ}h4IHeIEa3FHx$ z(+G|dS?%2~aRlrN;;uEJ4zOgEevok$b`QP*ou4oNZQt*HIBfml59QjgR?+IOlQPuE z5}GoN_q3Gh$!aA0RL5-$xZXsHJ11cXN_(Vxt&@K(8SJp*fZfOFuU8CV(mIsKC%Gca zHNZ+T!$DbmAO}aP2>Eg_Y^3CC7fthd`YF?u4n~zsQq#Fmo!WE#yAE8?Udt_1H$hvI z`OmnE#N%S!J}M{8BG#77tL;h_!0r7-D+StzgT6^tz%^_d#U@a+U!-DcD9Oq1GmExi zXRON-kZsh9o&u+p=0C((fel?Kw$Q(~9QJE0tnQuxx*+20M;ea9lNX5!Lb8X--SgYmZP^|0xJ1w)V8>cz#e62+b7ikT~8!UzU7 zj;Io4GgkDrajlRW;lc~Fn_W74aR1?ubmPjBtvi~zrn(l(9f`dun-ABl^unLbRk!+l^>a+#xXFgUN=py-KrMq z#840zB%T6^=xuZ*djeRZeTYI`7`b|CPIUi;NQp^RT#}@o#QX z(&|rm*4-Wkwd9P0v%c9t1KLv5S%-G#ijdFWFG8!OS9JPc0}mHRmBMoor2&e>X{5HP zf|h0EK`FOYyqHE=A1a!a$u}SDt@bs2Yk#WBD(8O*G$78VW6<|@c1EM}Tp2NBOACIu1fD#9aQA7ifvAdSj%csJSbY1DA1E z!<@BzMBAF~jZvm_7#8z8`TSvMVS<|vUeq0Hq%=Ls9@W7`X&y`MP zj}m5}K#QQ4!z?ig^Arpt({Qb|qs!_}w@RdS6Qj|p$=nFV#PiA0WT{zT9MTyOFcpS zMkct!FV(5OJ<4q%4Tw{wGGK~Xv4IvHiM&7_3**mR%o@e9;Ep_AvWtUJsC;)-3QqJ$ zpP^s_DDz~yxHX2TRq{U;I+=s(=G=T^VZV8F*%~ag=Vc-QLkm&vv>`!h9;z^w@>p~~ zdj{>*U>xZmi+Q5>9qb+N-PGtPqK2jv(JWeQjCvY3t*wPquIztsTXCx$^|6S;opQ9D zfRf!qo?~RV_b#^#2`RA9Jmge4!*n+<@_+*5N7r{}FH>rPQ$7WZ66`8EhRkGprdSP} zY<=XDJEMe_uPJxO@PMe`(e_19(pYpwmxX0><>2Z>^NAfW{U24*?d-umQR%Gl5dA!* zaN~e&ROhLO_=g49lkMoCG=0$SrX$4LdI`gQABSlU`YYw_fstD9bUn*9?uEkEd}Q2v z>er0(VaQB5S4YJ>FwhwAyod@x<~z;^DB>VL^%z}nw~tEKww^A1mHihd>!{LAna;Y9 zXZTyTvRhsb%(&xU+9m z05Bo|Awb^0>RpMooaxlCjGLmQ9M%MmCb#e}${AI6v_dv;6}j{`FaauR;1~H>dh$cA zXKHVL$F~L7v&?gj)^~nq! z`_t&x6;#GM*tuU*C$^ZTf;NeGx}|t8ar$j8#Uqi4d)5e^mFllcnVPGJcv>f=yrwFo z&F<2FJ^q)2x*y3oOR=;06L%T(U?|h^>~7qpDYQ&71annQh4!y=M$W^k$Sb4*{Er}a zDg|Xw^u{oF97>qC@#z>A0m=C#o<)>Lg3FuS$ZCNc?v*atA1Y ztYG-Pu2n8%&{poCnYI&l>d=V+6?;jscy zROzSZ`Q!uU$xai!#7ghn-e$TKPq~`AUX;(aHwVeQncux>u;UU0id!hj<1(qeNHX2m zXO7Pt%oLNYCH)BuN}&6-^nr~J0RFeE<{FD1Q=;HI%o13ALj@TX$(w%8q&^n?zekJ4 zT*fxD4Q*(x5#n&Z_Nke@?4?|+VK&4_WmG3QzprvbZT`6OE+VS|oKBUywUrPEm;{xz+$INW88_p{HYvEzbg8?r9k z0r6(ntDb&u?*%Wp6uKP17x~))6e`Tw{h8-8_(8=mWBV%n%EbdPR0g@|W>LI5$^JBo zNotHRwxerm{&cdL?kW?ES`>AwhiHa1`TNAthZ;Ypcv7RkFxJBS;7pm9zDb6x%>9kdRoz(cXTC&^ z4DmvCJLx#5+$!%CNDwxz9pc)DG0IlY#RLi4U zJMm~CopOsvL{=Vz^I{)8hQM)tVFXU+CSjU4D%bQ;W9oF>tC5XWV^)jOM}>1UAN_?W z?2BSHFtZa_Tx3}-V_Z{@EUFae;%<8uEz-cjIeS~_mkhYI00wtqrzW0pIs#a4dEfw# z=Q@e#!QAi=|>^X3rfa`2V!D#~Ec&@=ItWUt*DbX(NYAfpgL+)e|U_6P>%xVV$b;KC^RjH0Z}ByK^T-=`+tS~^vOh*Dcf z;?KwD2bE|;@!a+w&nJu?eLSZ*Zj*h|ihgg>|LbW!TR)2xKa!g0CNF>SDP7TR-twUl zti%n-5QOH*l_mD5Pb*bOdf-4vMgrU;bY&+|^}Jd}Q~i}62D!Q>zF+!b>dQJElP4$q+=<_OIV_LdFYE)aruzC)z;ftWKwKFsdt8LYrKU2XeO%2J)2u@S^+1*?t@2dovkj#PAW*7As1j3dR&P^+ zGnf{p8kZ4$)rjUwRdbS}@3Eu1oM28fv6eBTudb?al`xKt?FM_d<=f1!V=>XQszQ4y zr7?cj_(-N&sW2DasmFtzflMUq*P-RF?IbpjIf#sH>c;daVPUr%MH>w$aNjz@vI>q} z0=OpXM-=+R-gIN-TfRx`u#d!EoYf5#>Q0jNaUk3M7gau_KU|c_;uuwS)|-`)9){w;-y3FdV^~%16+cLv zg0(R69?%K7)j@8>Iu2q#HlEI?SW_m`7mNes5}ZD^yyko06Sp(T^Gt=Wr{QS4tV(SWNyn=QW59drE}Qm>wbw}ODM zD>>8nek@Te{}UHUZViVQ0;XG2naFbD+@-nQ`baeP(uvYu>6T{|T2FI`3Y=w~5PVuT zKc({!pO0kzyMnUn7p3YrkvATKIuu##YArgkw@D4_c~np&j|$~=fs*u6s$vX|Zr=B; zY0SIjx{Bu0T_$!W+D^I z7#D;tJiHgE9+fmG9M`!QkUo>TdS#XwJ~Vt4byb&^ER|P-Il@~^x?+UqK}tG=of}I#mgHd z&xLe!VMnviuxHBjU)yPZaHWBddcP@|{#A7ao@)GpJ!FO4{EEB`=I7V;`^h_d3Vp@? zqa&~VvVe)!DbrdCvyj%3`0&i|g8=fZF7+W#>QYV0IA8NYB*UhO60)5Jv_;yzl4JEL zQ4#(dkpxFO*iR#I5sW_;SJH*PG;2UFOr+Cobvibfcm?+-Y_}p3e=c;pYlbHIcuq5v z+ZQU~r@s;lYjM!`JM&_UrVEm~_rf?@3h_$36P)`@pJwlvo8p}zV95~dU_ag~zU9r> zLmHi#wnQb8qKnSi8a@Vw%9zmPJWkC+M?VX(JpXZYIaZymH?w$f^k;2u zWd>i;=34Ht_eiVAZ6tH`_)>c8N=Cj0Wtc#@n}jHfe;Wbrn7u(RNgZ-B5OT{ERj+tj zE#j6njHkYP>U2f!b{x*|4aumSAB2mexse?;HS>05Qgn#+M9wsLF5Yfh$5ul4)xQbQJ;jlgPXAteJ0!Cs87bikMH!sfD~) z_b6)6zrbpVDWRCmiw3DE3(xmduoC~8owR`gtF9qjUSOe`hQ1|-&lM#m*WLlWAP29N z396oeuYb2zu(Rmp!D0^grBU+3Z`M%RiI|1QHz_b?!%2ys zRd$AJ@RKOb9NvhKdr1fM%M^2JR-aEr+g=gOqF^goc|O((j`}f_B&yjJ5)gCzbL_gZ z!SUP*`&Qd)3-ES9VoSkl(2IvF6{+8Dqd-2h?6ep^lXYaf^j2nmM!%%bce~2t!Y-zr zkZM7A(mvijgzqh-E;l~ol7$`c7v4J++0)0l%h_C8Yya5EF1lJ?*~|@Kli5bUI3F@W zuyF9axu(K>0f@b9VBWK+&!VDxl)y}KC3p!b9g>dElRvGq*Z+Y~`@pkBLHOyzi2oKj z!XK3Svk~%z++HYtZg_P0YWWj`9#ky);}@Gg9Il@ISa)Dn$Cp4RU|&fjl|A*;wXZ&x z+zsnwsn3p`tWIS=AmsX1uD`xOnC2Q1Pcgst6Vq@()j!bnD{}W+#VfzgjO#zsLz{Y6 zcBcJ;*t@A!8+Gp>lEbGx1}|^?B&AumnoPR3N4y`j$O(5N-(*L)m|}us&BP^K_*yb` zU$bgC=l)SUI^S4p>n)2e%kfot&x`u1N<5}9l~g)5TuB=*YAt#4Jc>~#PKwnJS{LB% zjT;0iWs5i4(Sj%Ih;;2av4}a+Zw-5wWXJbZLA9rjd$MV8Qor=`!?}MQb!E(* za2Z63zdsX8i!w8bU6af-X>|&TI1itrOgtxQtgkfZzSDNBO58zJKZC^JMh_h|^Z7Hy zaELRwp$ur0}!&jj4PbfvG&8<{jOXS}Lp z19r{JRyxbRu%eJEbKZ?`TqmrSu#H;!R3PoWAwC($u_A$HL%Z2Vh3w2aW_nfbYqa+x zROa<>fAdS;_Py?$DP8#tXWG;{PYx&zDc7GcEx-32DWW+r#EdK=*OtLC_R=#sA5V2uqta5BIx zRm?S%GoNhxayr`43MS;NOz;1eBYoM)6e|cPgaQH2B#a&cdNInwh;g`SCV}Qe$V(XuaW~?^vT|XPyFf--(K$j zN!V@}lY9Ek;EHxf(KCFWOWp|Ji<4=$S%pr{g(=}$>?cI`P4{=C;kKM91(;)Q^~gOz z4aN8#vGgVUPS1L&(&&=&uDm>^$=5-{(clQuGHqXdI_;X&-!u-HS?}=&2nQ{*WQest3?dWf~4oT9rt6^APM9p zCQ{(xHAFLO@W*$ z-UwG^YST=Q#-IKBr~mkzKiLrCI|fx}kOc-{z%0p<%d)_mO>|o>h7FCvA3Bv#8x_SZ zxuI+=aug>cH~NZZN3vVwg8>mGmVKAtcREgiN7MZMYYK#3>$Uub!z&`8mqw(g%se9e~Y46D#Lz1&Ds?onNzt4m>% z`Svk!^jZnKRw1WEob={H5o>;axSmFqH}B`^Vz6&anA3Z+*ol>p4M?$lN|PB>bAv!r zi;gl;9%_W$u9ke#avjU_07awkLtAcCRGrg8&>Lng==ZD*$7AgjLY`1Qx|2d{R=jeBmB3f=w&i1Bx zt#j9ttg2Ax0CN?f=ca|e2y&moF{{)%5+6A{f1lj0jJMGH|GG-Y#>_#L+;ZAjekXST z;Y2ePu2roPnDDl;Hn3~7#%ioF_Gq!fxr2Bzvz@T#Q?|P*o3-d-;025p^z4S`_=X>= zcv2YJdNF)hX1%6uy6(rSqVgy$@q z|7`!@5YL*!2~KD0pj>}Jj8_;8n>jltjRs5#xw!t(XunY)kpA)%(W}&w zt~;Ezv?D9nT5LR)i=OE1Ny2JPFx`acCXh$Lq$5sX+z}oL+Wpe9Rv*bVLcyv_T;hTZ z@st)C_CcRz8m_K7y;bwp&*!3#Vks)^DMjf#Aky9U$5L~66?%GWV|x9~yq}l;!wJI-9#M{?1p7;K* zZ^OAQXF6Z_?c10C;vb;LvG{-6?v`$`y!7w9<>yLJhSHF2_T)`i4*nR_qXWw5)+#Pxs7M2?^F_2o2V@ zQ@u)dz!-yYwDp>-<=k9{r3f+Q;kk!1gDo3}SZ^mLr}TaO%5q88035??$7qk8_?9i= zb_5FB|H;&VrprUT($hi1Ej!hXRt)Ei#Mr`h#ba^X-2F zLB=TQ-YNL$!M5R|oW$e}sZL8eTZbFY^uwhWF{0m##>TIFO53!FB^+1}#*4Xq&|6mQ zW@qbYJws*_#x-u;hS8#obj^kn)O|c+zaNdFL@vn>sg9HF;IsTaY{pSedZ^j|tLA9X zbv^UD9w#8s1i4st;Zz;`ZyuH@x{bjpRevgoP5PblS29piG;)|v7TCazix-uSwr;dE zMGnMHWJSc+QW9D&-qF#~I;AOy4izWh`BbfR(dEeg;fB4?&oPI=FE&u@Q`tgs z9YfPS{%2IIbkK^r?gC+iNg9$V5{9IOnUoRovIwOzLRkicTpLyqv^h^xqQ0At5ZYF2 zdp4`A*U=BFuWb!I6pRM>8Rsu#mQne3d3Uc7k5X>8)%1#urG<1%C*#ArO2eeA{CJAC z@IaRGcL3u5gJ*G~cXq0KCn*fFAQ1*GK(mdLq|$`)DExp}j*Cw=OP`03>Svuid23{5 zM&2Oc8=O>9lB_BzRV5b}Cnc8@JNbYuwliS8jUp4|yX2!}iNM{AQ$O*EN?3crE@;Fv zzc$b}H5R~ay1h8)6c?qdkc|Ym@|bi#RfpXJMTW28YW`J&FpjlYq+;jrUj~quek(Q# zpk&JXTMX#rhx9+imH)Q8M@tiZ;fHGU1QK^b?asf zk5pAb8cyQ6^rq#Jg!-~o>Kb^{0Ux$JB$*QuzHtkMLu=;G>)Z12; zHlR9^?Km^8qo1V&0JN45@OcW{omBXGReDB2p}dS$O{|W}n$HE`ir>5#4@~t5&3g9R zN#j>BVUtxU%<^1AL7g`=*f#hff`cDWAy&`Txv+0FkPJyKswte@H_3N1_?EkxEw7Z{ z_t9MwsND};r5-6;l4HD5%GI0JCXIRo+#5AseSw-U7LpCOf71R?;{5Arw-A`@<#)5y zqg4L8Wvm@9)wgdq6r}qmY%|q>T!Jv=tU!Nkl+E|-IeqH&w&Al*$;P+Le|k!=8YS+8 zQ+7T7#bap)w%z%&Vo(16SN=`PSempqz5*=MttenNax0bpYsFD_|1MqETdve?ja%ld zWoE7b4rZ|w&Cy4)(meD z4&AZ)hn*>NVL69h&Ey)68r`ICHQBKU-FERKz5k!* zS+jdb(aq#%{UO~?kAC-#r~g+b_VB#KpO;_ULsY~Q8sDb9SvJRS#PT;8zNJq|NTcN!%$`N zlIAUBxdUFBIcAJMI5m#T5?1qowiuiA#KM2BHd|S){xP@i)kWHa4-G105nK(QfA7_a zrTWP4kFKwMu7Dri&4vslq$eDFabB#X{OoKE*|$$AG?uCBaeDi@)2WYbhD*gQteby; zIlXQnws$&k-z{UZ@G?RXyV0;ItuQrUNVQ~bt()K73OATGrx&M|>eBW)VAtMNru(5o zciD{DjFl^vT3&qRmr#PiZ`Q5Qt&!w6J+q#ouD$)yM?;6t)s!wyPrc+K?d)>NuB_5s zJ-QNZg7l;f@?-2Ge_qPD?{e6uW_t~0MUh^-|AEKnRBpN(T2kIOZZmg{?)uM1ADw2u zvZcA=Vjb%YoA^bzm@M)7m<~LDnd;g&H3P3Rt}<;)ST8-u7&bA*_gs2rTJOTp#F{t$ zzKL1QEY~+sh@{r(K*A z{P;9<{@UHLgSK{%oW%U5))Kv5`{2>nqkSh`l9@j>|EVcvOYGe0N8*Bsu{yi^Yr*hR zI|P>MHeo}c?f%=&mG?IKMr7+daZl*_mlDDMKlZo~Y@nZEYKYTDXIyh~TI=3NZlCh% zL}E?tm~j>9AJp0vSvwo&(yZZ0#$StX)LB#dMg2GDzfZq2_G?++!p4_!`GLZx-+rYq zEFX<9l`4g3EBkN4W(e;UElz$hy^(DJ&#;ff;~J~^4B4M#*WMSGt?_8C8K367x8ryA z09*OYP4;k0wX5Xin#Jsr8}@I|YyUfJPAm95UvJv-dug>~>0VR&V?Fv!*}(7rNb$rQ zTinPm#zka>*TXMcihj@58(01oe(X5nY^AIIBiGue*1jlTppL*@um(Hj@a0pRfw4Pm zLh z3SHQBAraS`2P(VD5WU;L6tm6r%8Fwvp8MGO&+#t$4(rGlDe4YWU7ibUmA+igotj4b zkRO+DVdsU#9d)^AuYr=Xxzf-C2F)CIq%!?hkx%|z3c~)#*7SE&>?ve=qh>D*eiQst zN~KS_U<3Y&QMvb!yS%>sh9G%V_sAa=jA+0`O`23PY+!FL1`R-d+5OM-)GA7CczJsi5 zR`H(2_0WVZ{*U5+R#Bx*bOZBOO+%KSnYw_Uoo;9_oGFq@y%-hEm5doq7)*DT4QBr) zW8gl=efJ&4zvNdr=fB~nV?KvIDXGoLxW+OmhwoO$g~MenOcZA*kEDs+u;90 zLaDDG+**YVtnsq;IgT~=!oOG0qKZou>pYcu+5K?>7^>h6TTZB6>>x4c%k(?)29d-1 ze1i}lxD1@pFVk`=ghy#yciC`x*z}JIR(Yz&C!+FUoq<2{5Yuji=4Ym>4Js>As9iW3 zLs|EISHSU#Ia&}^E$h6M0v4S9K*X*FUFkZxMUMmnS1F+2j?Gii{V`TBta!RWa&P-yp#-j zYI~P48o@!)Bnho0oVKaaGt5PKq;SV~m}--B)q0xN3^NRC7elQfE`%vJrnPxMXR=f7 zfTOKx=nMpwiDhc4d1KI4gOR%dK7$-Nl$oML3oB*pvd4H6A}vYVrj;(Q{jNW7Gos`2^7quCuqE+$TzWK zz^QdpDpCpt@~g~A>0V00xFgEyddD=y*}NgxSgC6biv;yvh-xZ`^6^06+Bk%G>l2=! z!1PhNk_xg=K7s2R2V?qHUpAjW(_v26+sspmZvPc9N$zMdC&gTTR$y8++V1;ca4RR% z$SkDxR+>F>V6rfcn>A4qJrD%YCN>cpsHr6*NGg$zmkMXhn)&Ie_a3Q%@Wc9N zZX28ZU|1KZydQPgX~xPbk)sLv~B?YHFglF-cx6BJ<_LjBW%mDhdU{A`Jv}-ICUIen6 zOCYY(h?8-M;}3UJ?4)w`W=!H-be|XsLu@%*HA_TAdW;i4kUCvCO9ii%&&6zixjO64 zdvQ?)km*7&E6eHt9SlwIGby$AWe4n(^bIB1!dbm+JH^amxsr;B3vRSY#tlMi_hxbh zh!SKZ(wV!cwR0H8!N=)41g1Gd#E1myTCt^C%Z$?4Hsl8OrWi~4f@*>3Y7#5)se9@P zkSNhGSwnmGYEq;?kEh%!pbkaMJA|Nhe5>eI%5NxbBfW0xA-w*^azHBvCz_K`{G= zp^0IMGB9C=9=}W=+m3LVM{995VBw8e0z=S|z2K2_0RlQIXw9Uec0@&6t3BM?V-@Yf z_$r+Vu^~3Zg)l;5E;UK3${lnQybNOFkb;+dvY-f6w8l#a&E!&UMw^Yb2+Je2yfjN% zqKwzsDPp$bcEFO_79Fzlf-x69ggr>o3f&a#h8T}%5(XMqfvrIDGfEdPsY2X-PS(&C zElt}NQ42=CYi+DZa;D31vIyqpUpma=282=N?42q9%! zLl2XH0wID%L!z?N$MdB&0EOF(vYZ*)WAT@gm008BZGN-el1Uf`%9Cx@d(<3)CsGyi zq<7w@Pdm`y@OBgleY@QfCR)WZ;z}0GI{IfE8UDxsA)IIY@}%?%ZB@Al$Xdk z7}+K%d{&0tJSW)4vr*o-2`7*2A>EM1Zed*E2pFvv=~|62MGZ3C;XaC=`cGDk2#k}K z!VK$fsX!deHDYXx9qEg>7A+UD1lGy&y13b9ZqZIwTHH48PHMt!*M>N?Ltq99T3LhuFs&0W6>?NB z%lNNQL1;FO-64~2?wLf!%*XXz+e?xVM%((R&{CKKN1&^zI76dU=BndPm1}5=;t%ac zodqL@3guvq;kD;K#IW|2-Th}zjmam`2~=W##Z=0O<2SN{Hb8G6v&p?ZD(ngrrw9--QC>rkqe6BlDwwq$?$&|EM8PhmN5&-hXe&b6Txx=#({wW- zR0U#Wr3vZq%K!UZ6RYu(VtOu(X)y=M2rDDCJTVipSTXCvEJ&U0VH2U)q9VJ%8@;>A zZ@Upm=tq@_TP zKt!ebBA$TTLB%O~K+A+jT8uc>i6I?l_8?T>5t1A<8V*E4f_NB0)=qH}KfZj};on1+ zAJB~2+-8e~pemr(59Y+#+0T-YwbvfaAYT5Cg9Y4Q$|_XFiz(xAKZk;>&f&Lpbo+z$ zOc~(I8NSdkt=vW#u$CEio6SKz&POIE1?D0^&YW%N##q?yzU&8>^VW<)#y~JD4tvlY z!eJ7pRMzzO`CB7-!+}eDjYc|!(+?xgK*qm|Y$~L%na0M>yP#PP$N_T)xs@kJRuS^R zd-7#W|06{yQpv^yC_=~DF;mnmQSR{!SJY&O;nrT6{;pLra8_Dho>5Rbx;^4ghQfu? ziDR>Rh&8;CMJ1^^)#=}Yuaz(0kWChBIY89G=gCWVc@%9ARr-89!$)Nt%IY6AD>@H+ zp2F#et3Y>Euu#tiI2M$nTZe^@lyd>Ph5joj_tnpIsx%!;nmc&9xe<`W>_l^izq|wn zy~hjB-o8##7Eh4`EDCu|q&aJZ%k5CY(SC;O>{%m(d<~A$f058o0Z&mjMw15>)9>06 zXY=XL&tqUU?@39q;UtO@t*n$;CL8sWDC!H94R$+0+sWoCozTm1 zZZm?tqHJ+9#~2Sb@H~ap7kEeryWB=(uoKo6d6AS!+?+S&qQzLsVR&rI6()!tQWR=g zp&~0`6=g??H+`ruEzQHp2zQ+3bX~VKG!D*KGPq_hCwQI@6?CohJQBDwEVA*|$DKie z>7kW9N62DbE%#*P+9fLDbLkT(f0)%>JsHNbWbW@QLqOU6q}0*A$R8A#Mvb<67ac5C zWXgv4)L2!fS1FmyPva)R^-d7(oVgvtQf8wz0UPktJ!1$;+lS+o8*A(T{mJ%!H|=$% z04n-u{jXM1(>mtrq5J5loo135<;)}T`q`)T%Iw=JGPzQ)!R~=E3JsInemN}b#MQeu z$F~K)4m;rYBHcPf&G=!R5zHR8gx*!n=wXU`>7`{{ho``?1a3qGdAwf71r~7g7cxTM z3BtuSex~DX9@-+=JHGse;)Wa1@9$&9R_ASFIh%$HfYV-|Hph5}l-|rUbGf?M*%BsD zoH#U#r0*1cz}ASQ$1Y&*@Oz7e6*y7!5uq&YXQr{$aU63#&*pIgQXGF7>h&8r0~&U9~WRm2)S9EufPDA<bhgGMPWh&hWoH};ySa%$?cGbbati&el~(IRH4{agZ^Ot~cbu4TWiQd^Yq`}> z&=5cCk56Kv4gmHIikjg{b-*^3BDplvi@Tf^b}aow0ZY@28`T-$=Q8}BvZ>!SYfbA7 z;l7P!_5F87E5K(IgghhlqeU3N}&=RO(daGk1o2gN(AM|9v2`8Tr&Jg z2E%+R%lUDsK|7>#9jM`4NJC%09?uRp92Xx?>j037ebY+Hrf6f7Cc@qJrr4lGbnxcG z2BQ!QA*k_k6D3uO`kJI`=8H+tEI!xe>S)nZd->MI^wH3^u$)>%K#^uUN6b^%#!>SE z;3)<#KE`;MVU5s(88^UGuQuUI(<)pH`+oQZLE;3{ei=loEX0@>@z$r9dWy1Dvkr17 zQUBL_FE(t&%+uG>%(3DUyIC1<1`xe4;l`L;M2A^+^hfls7Dh(6*qb5X@HOmEtc2tD zL38eRjJ#ZXdxw=NL6xY_9k%;2vXmJ>0rVQZIdygeq&+@my=OEPw0|Ywwg@$UUAsXp z#+16HDU3nTEo~W*n>@H8+!z`tEVNPj2K^2f%B76nDKXRW9A(pVjc!c$Myk))yL@o? z@0Rfn^f*TVnO#&--sa;8dZ3W9b7U<#g6`DdaGZm8Yy zNAHt2tci43E(Z@!5jSYR&H(%ddi50wWM+AQH1t!*jN~GvXP}UHW@{U1 z-sivPYB%9B%^_H89J*G9%N@+uu(<)W^!btKAzjMxTJ9!`-fL;9exLhj3U7lm0tq;N zNoBOv+}%8nTy9F@?LzvQ+Y(&tY2o44d+0`ZlI#M9nib!6yB1dTG+x2pW-~;1vnV9Z zkQQ}qAuUQ@;NA%5^*hV42S3EP83G8~k+x?%9b1LA!fyJ2<>UAE%2o}l^qw;3@R@KT z!?y%2L;W3wap`5L8BWA-ah~erC~3C~1Li^=qQD|L#IR#FpMQppkHPK>p5u_%vQ zc(7WpI4QsfE8YumN>Ns3}b_IL1e+3e-A8F2j1y`&b2*yz80m(AEG-EZbfBK%0xBAfV*>mO5|&~ z_&TLtLc@L2RH6ci_6G>Oh*&@_m(^|i2)rq;Kr5p2b&J92$$b;MCdOB`flE7`HBf>} zoGf%7bSo;IQY@$r+w10@v&dQPOQAQ^j6%0wkn)1z&+VSe7mzE$7G3NUGAV=#d44>B zQMju7bzHULuA5&?^=m-epWbyO*b%Usg0GAq_YywgJOaLF@Q()XDLWlabIB9I%|f=l zYeF1APq>{yvg!_c9Dp|Ph9KpCG~!5=dUM5(PEcIIA;R^97hI`Eenj|~^>4KZ|7dWR z)ANrl;AHm4i+y;SAP=D@-EP2HW|6EeJob4G7N^j!@C=pAUNB%bFn{Z|{KABuFi@)j zWj(s^=xy8bUK=c|CyJ*_d>y{ga^mC&t&MxP2?%R#aJCbR0-DL3999tq0=Op-RYzF3 z*mOnS5v*~L*P%}_uxXf<4A}53`jwes3-2e<;Cu>P+@3EXu3((u31`G;44C(u;%KexkCu_ zcuA?7DA6U;@z`!+Rf5UKH%z~(}yAmA{JVVKu<;t0<4^0Lc1_vzqO@8mBi$+4y;p&N&x0oM&%4_o1ychr^H;z*AzZ zPOKhT&Aeq-Xb;d=JD+nIgtcEYuzypT^0-`zqcWUV5n!OD;1Ph&2SxCYs+3iHDsSPrCNd=Qtw}uqlXkiDJ=Tb*rUQ^2PJl z?9#&$#i;$!c$>r2&|>gGNTjZausA-LvoR1;JM24M=368-+dU#=~R(=A%&C zTfV=1Bhys`KL26)f_do9uW7MQ=6B%CUzgmEl2MKbB zD8z{RJx#DJ+m;hefdr?BO6Iv{I_H$-xsM`%kXd{N378BCk+JlGV~D2N3k{EXkcCat zq9tUfZDs;;&X_PY!EY}Lrnx9WyfZ?68X?F=S(Kz;g5?1sv%xXrmx$7Q)NF!DPz}mP zDf~ocM?UG1z5c#k2EUwPca5G8ESy5>mhp7EvE#OE!k|AKn&zdFNadwzdDv4?UsxXm zm`b^mDt28AB8qDo-J^$!i@bK#6CCLGXE#UWQ58cm_jC~FyZe_+yNZzBtnkIV3cb6> zZ2Y?aGa(7x79|~k(3}Q*C!GLUO>r9kBA!TND^&@IQ3AIT9JkE`?DB#HLVoz$a9C_2+Sl7e=Zl|Od##^x?s%Fu z@O8g!#&Jp8A3Qssf0|A)-q+tSzKhY7hpY%WBI5MnpF2y*roR<0%zmD&d?#P4p6zCF zvlWvjDc-_c5s|_VU*0=Byt{qx;PBqd|NhO>Z@(3pYmL0w#6opPew+JbsDXn>!PQn3 z(-`1S?hBnAs}`1fQm@|1Ti1wU{J%1Xak}k^*1;}}+S;VuQS(JdtdF{bo~}{o^>tW% z<@;~)5#tzL?W?_)tCP1L9aaz9?aAnb0m~jZJIt@sY+Q z`Mj&5g~!N{`jJDxQ`Y}MZ6lFcaj+P9+3LwESqK>xM^Q6!a}q|WTAcw{aHf{V zc=TQuQCUksQMh5s;o2k&4YsHIiWJ=%`PCN$Rm^;+DygM0%2t*O;%=M~`L-uBKsf_7 z$ud!Dh6m5}DjFTNx_3&VI`RUoHbH=t#SK!T06>_HtjfX)fg^FiZ&ZX9u=<^V;?q}2`;ocn@Lns z5%$qpcBIhQD_yH_`L*iBmF*f{daKl~m0}n2Dyi-*l8sC094%gJ#NVtvjW(rK1AVWg z0@(Rr3pC&_f3oX)LFszHT!gf0xS>wV>Z~p}I8VEAu-eVzfc?$`zR`yvaBeh2e0{B9 zfgrO2SWqb{b5NGdlZ4!Dr(x!AQANs@V@&xt?| zk|Ib(sqDMH$vI+{^f+Z=4k2%~pQLEbFOAJu=}@L-z51Xc0zV%O)R|8NXkMK&`?S%_3Gv+cg?j`aS%; zr^T(cMI&(Q)qB4Z{S&ke1I`yq0o?tAD-|XI5gYC671)^G6XSs|#O-@qorYS?( zjC0Hv%9>;Wf~-rE=_=e)Yjf z=|vHPGLD;HXT}k7p~;J?0?n(PYDygL$}6()*^}^!D9YRGArmMv@S$|cpk&2ClKaQ! zxMb=Ud$x|^qMZkE@FCvBK2Ed`H_gNSN-r{R80O&uu&!%b=t+aOk|PW>g}QB_FMZMe zmJ+F>X}sUn2o+Kkyre_|aQF+z1gl)tlXSHZM%IP)-TW^uemr6pP!0?O+hSR>@P|~m zb+-yiQ#9q`Vo0>ET&NvIl&W20_`U4x#Q6tKad$8x57q^)%CBUiRYXCM>cEOh#rP=3 zeA_|dYSDrnyV!NzEcSFFISL$&qGR)F&X(jkgF1}1a^Ufohk{XpOob!}&0;ew)Axg5 z^OXJlUp@8-)pP$3*-xIC)mqw3Y8?jnWxJHLq7S$CdqPjKa(Xxui`$*{dgE30^uf{5 zgU0Qn_~AkdX*0KI0gA5Q?GIMuQ%1Sp6zg9<>06&C#g9L}eWP6Z2s}wVI9mU?DY9yn z)_&ZPXUNkbRYtYsSN-y%hcCw+8(x3pwA=QhJN3B!f?Sqq(=eAtrS)N>_3c8mP-(S3 zOh+Q->F0}!pTD@y@lwXhPSvjtvV;jt$Z|RFkF&&NK{^uBBn!)F-NCcq-wWXm6p+YWHqmTwfEh(^D9=n{pkKcdysLUx0iYbH)?6v zbnbZNVW|nuCgKea_>%Y6Q+Z{p#zD2tHLh(f$+Tv)rGMV(Faj(cMY|HCvgNl_^lDml z*6ts^_qnfiuJ3Q&9*sX}aeH&(dIX82xW9Ib0u=GxEE$=jw_|Cq@XJZB*VM2ku3W!F z-V(EkA|0-U)pOhb9mbQZxjc(KNcwlTgh23BB}x(y^hg>4-!N@)Adi0D7(=e>fI>hD z@5VQueocU>rqj8zGmhAL;MIPc^ZY1Z?~A>i7j3^in92U&@gvm}9R*Bef?=9_gv+YM zZDFh{t~h4WA!)Wh=lR3>qAd3Le*ezB>+$aO_}(3-Z}S8stlSmGuUE_=nT{D(^p&;o zI=N!lKK%3YL>;Ju^5o})3@oJ=`T4CaJQTSopYdbYAM~=dPrHszWuEAg;clSEx%jHP1C-$vpPhdEs3Dk zs^+?UrA|=Aq$&EW{%KwLjaoaTS#gW15>C}Dg%{ALL3OK57C)|kvQqnftNZ!MYQWg< zmjY(<-m*-uAlNGM+{LD-cj%Qcv5|R)f^zd(qbkNBAjn1pWU4rf3mgbP#uQkb0!F0> zY3}*hr!a~x~X7lu${upwulU`zp_Xk{3O9z`rbI6}Z&V*YY0I*{hr zM373_p-ftGlpLd6V-fi-U_LNSWTr^x%rtAv3mr(tkOS_!5zrCGR7$erB0@L@HUKYS zVAk(#Rf;?;nliPmhLxM;vR$+!Xw<5WTD8WT#d4<{xfDfUgDNt=fGASMl3PfC4W{&q zCD#+nWg9Rr)f%;0rE10tMN_F{*|MpPEM&<-&64qYSI^fdO0-)ti7ZtgNNm#V7G$y5 zDHb^>M=v%>vC0cp?WAZSjAF`e5K{$@&w39k!~in49H+I0 zqlPDW^8Q#T5zcK zmE|WF9S5Dw*M%s>fDe)~VKL(#wTY&K)Y-A6!R7Lw~F9Jjgw-Exs6-Wu@iEm#60`?d*?_ zimkkx)UIsQeo`>mwhQ((Z5!Zyzr1BTDJ;icYuVZn@Fz78Meel!VfBEK015D&mA>H5 z;NY6sdOPP|3n#{BGy5*`S6s8tu?9}74<6d=bD8NyV}FQ16a=V`c9vwfeDnE16>mK4 zd7yOE9bkw!AS)%#48Qu@8^zSj;Vu{{FQrqSNYn?Kf=BSN)t67@{P_I6d#T2Jnl=_E zy6KVmlOBDY>&IosJW(v@Pg8t26q_~J2DR_mkr-<|dC(cT6W0t*n4=;6Y~oy?3(}s;S%k(>cUN6wQ$`nB9me84mARh6%i#xyd(`wrE$dwQDhu_2b88tTPV^^erSaP zEK|j9ffwMZ`Kp908#*;20w-Vzrez}>%`spUTIr<#LtEGcJ?T(immC9?*v&Pk7{v(! z6fMHBZ(G`CC9vg!nIg2AZh;0^sm#y!^_IjHX6dTZJ zv9Q@r;+0P1HbP$fFtW3OUGM2nf%&}_Kixl?A$+jiO5ZiD)~bPYF|Xu~w6_!~(pRFT zH+@dblFg*Kt6e8CJctJxcLnf?i;Qx}0Z2eupwn7$7Xv^WXC;J}z0Cy+5F!Z$V2+xd zbE7yG61F#VZ!QsM)YMf$jlCgeLW^aCo10GG;84Olii~ijmK)#Ihh3gD$}qXE4{<>* zmVGvXd4hZn%G$i?4*pI5O%af01y^F<%k<`Ppq#cUd^)F02Akbh>e!|XTY|JJGKa)D z28$ZCD>Eumk{ov`j35yv>z9|0fBx_%a^TM&t^VwG1ex z`O@lTPxn3#sD4>=QLpE%a(Fh1JaOvBf=9zRk|K zUT^2c$JP7WQ?EKkDR~L6UVroP&f(nau7g?wwn3xz*T4FpTs?d7;qH8X=i|-c@Yd^R z?*~`vrSd#3xcd5L+ZDO;xbf9(HXSlJj97K=?!n39c@zil@76M*$qf8vpJATSe#F-} zVYrr~I_`h&yuEcQ+K2J_kDC5T*FQ+tA6J>v+=ZA>!(bb83!`Qd4f z)9e!Xw&7bj$8u~u*l@$%(opHW>Ijwv$(e>BHK>q0$H0@Hcl>l;Ub$h~e4q)AUyDGSMA zR1UD`C&MykI;SG4%v#l6iI;YlYLCQ_VKs{d(zEh(A=Bxo$`gT>doB~I04X<*IOv4~ z&p&}+l6d+|JTb|IZMKgR0+0Luf3&0JkC&sBzrOD-{a9nKDp39ruiKX^)ncWBs+D53 z`WHXhzDw%(+B07VCE)K%b?$1|rsjWa5#Ih^QuUfau;uWOS^k$-r2k!{<0CKrrx!1S z_@`ptx*75EAC4wRYU+P1dR|3~;@1a!T%DIr^_WQe&E*~mfgszVNPL6ru?}#j{m`41 zg!~R$g3)in*~^XJ-nH=EKXu;xiMo8pA%FlI=`4R(_sNtf?yax74(WQ z0pfG{q-=7%r)7r1{P27>6 zE4cCP{TpuxO2;==%?{7jd{9l3A1a`7pEZfdjOc)i#K5z}B1-K$ zvWTjjlSrW4JrtOd8!?}t7LWUaqiSjZbDq&*-yFkB+FdCfk2N17+m=ihis``tTAL|-8}(ThF_)baM=;j{B!j##Qt;DrWNI&*K_^fOYo{*b2dd!UJReR+a`)N1jz5*(6O%7=`=8u>Q=72rpZyfTcTu<&viBFYd=vN24 z$Arv~;q)C$Gu9&q%!GcwU*?QoO}Q(HP#MUb_T$b(!X|mSYFv7DVEz_YRgH0OxWkWr z=l2>Zf^^Vst#Hu2Hy-wSP-4GyzbJ4?#QYHZtAVw5n4>Ow`BydpzVO8Ug>5@i(el3%5pQT~jA-wyQ6q;HxUZTbJVrPArV&Yg*rWO*8LE=*Os zPxJDy%0Ek=rLe~{wokWHmG;YNo+XD8cgAAs&|9S2OmT5x!tnXNN6yIy&IG>?mdu94 zr_SWXm=xssKEvtBf`*Q)Hq#MX2+1kwIK2&*MztiB2~#-2l%?6p%I0rhVERf53obb& z!!FxrUI|$Wx%YzbzjQtO?QLQC-=lZ_`Csk+t33)zzitusgpW+J{^(YRG#Tj=c*#$(iqD_xZzPeqs2RplkG3O+en$gHkj-=Qnnso?1c+CxM>XBvc`~vwwvd^ zk^|v+MuCiyD|y-~XK}9DnRYy$Wt^gpz}zgublC?z9S_PO%|=X*VQnCn38ihwqR8f` z^576MWk?$TT=DM7$-|xgyxv~*7w;YkpHz8g%{l!RYnuoE<{}=|l47NCTbrG)$py1p zc*9+Mxb)`t$<20!)o2sYiNm`SW{LE&wZSWbrbu=5-R)fYZbnrmDFjQ$ltT zKVhAiLzXT&#=F6x;dMc_{2&X~03Rae`VP-YZ%-cu&#V-3vT$b7xVMWmYJ)P;b;KAFXgGeRfhq ze2rqda>?PY*G3(=SSljg*eY2}l_vOb6J8k9Qc%Sgh<^<5tl zSvPN1Q(9zavqpkUwbePdrdW@trZK~z9*efq`+gKeTV=DV zP&dF}ML5TjDLuFm=v>&gk)jYw6=VP(Ff^y*i!Abru`pJ*b#wKdCp)Vowlygpu8u<^ zK0WiGTWs+9eGGY5)_X&s(nJ-V|0e>loo+OJz1btcPa~xmtH<~0IlRrL}Gr~MwI_95ogiDDZ1D zjk{V@tgZTKRPPBR_K9L0T#)MO-tSHBww;)Oe_9Z5s%(t9pwOC+Kkevzgy-eypnQ%a zgMW7V<uR2j4u$xJ1KqUo?|{{lC_;|Md3Giz#1*yX=c)|NhTofz@|i zEa9nNmB2-VvKDrE1oSg;TE(6z9+m@LHE0B8yWM0(pXLK${fHN~-zlF8%CY#P+zGs) z90!8Oj6!rcU@);+wiFP7Yfe^|KrIyB4VF}SawmZU>Bjv#tDgE22MT(qE7=a&8@O95 zA_Q1Aa<9%qgHI=vS6GrZ4%OrxZtUhF8-pR=DXS#C!VYH4DyxpN_+6qdT*`ZdL}Itw z-oR&*dhO$S6frwBK++_lc?2> zLY;1uKg?9fcS{_`l#aOH?|oOzm=E+ej3O!ushBEq$Ww_60?>*{%w|p+d&?wlG%drw zT6p^>M}^zs7>tYNCqH@D_l@k2ADep>bEg@j${%T{haglmbL*&PgK70S&=HHMFAMLM za;Idcod{KKU;_e>9 zL(lcSz4<(5Of*T4=cw-1jYSU)^>pconZOZvF2-fXy6?+CuQ06SXJi1Tn#NC9A^fcH zLy$=@ghN{%@-xN5OwW(p#6#I~&oi;IF#gAn)`)p$k2?o%8k8fH%Q{aSn$46MBr*%z zC*3oU(v4TPJm=;NUO6tu)yyS~!^Kmx3!>`!#t=Hp>@%!-+#x&YNKVzOYNgEbx~p}g zzV}{F#{1F$oqe9;1D2QjDXfgmXw(ZQp3?JA|B3qMJwI2Im#nhvSoGK@8p`$%U5MZ} zV8M4_T2BA+S9@toHz2Xpi;_o&q9}B)i^-vt98ZPsBo=H4@RF>G?;Mp3^#ROa!p4H@ z;9+GE(~MIN5oMfvrRZ}@3T|$mWIVqiKF_qX@_X!!EmdzsS!?@CkE`x&Iben zCo$JsU#-NB#JW1l(ppABl<1OMB@p2wHW(^eSFls?=eWY31GucdGB+G})KZu7)-DcH0O!Rk>v%*0ghPEOWAgab-aFB#s(J#xs|G ztTl@5g1cCYf z5>GCCe-zu}dm3r?I$~d#!exZk&ZpCbDQ>{XBgE{aePph`Sx+wh4 zUO3R8GEMqm;a|V&e^}9~>z>cdw#b-pMQ;Ji6!8OkFWu zL;&`47sthW-KiJ0Fn)x(aS_CEufYmy2|MElLJ5t^U#^ifS;yxxI)6<49axHa0An#! zy}%6;UFjr&(8E3-gauSzC^+=E$2jzZd=D?ZAorPbX2q@$+g3iKKG;m@F?qT{Kc(a+ ze?Z<`scqNIHN_oP)1|fbqt!-US@DVbLGR8UArKnGMyt6p7k>5)GyjnQ*KPy7(Ll%z z%;jOz)0?|1lZW=+^m?zgh&#AKrZ@M99K(BBYqqm?u#xe6rB7Vn8b?>&t=3j@ab8@_ zvl}9wudq&j7v%D=!-bE-crp!;h>I>0C^In^AK5K1Y)fghC z6^==VVM+ij>3XXTmYiq6pXtni>>C4QnwUb(g0)rQ%;my-F)gj!QVmX~=T(5F3qR(n5 zBQ|7a_sF_X!7U5M6^6;i_y|2+!6Y^NmTm_W{2X>Sq5LW0fA}xojsVYM)e54>&p~9h zMv4#%Fw8k^R1?>wvOM9CFI3WAvz#0@Sp|GVd0godem&HR0@(Psz-I?gm zcc-)Obq#i3Oti-o$XX>&&D&sIN)gonN-T`}Q=c58@VI2_vA0`iKH{B94 zcx0cGc)dso2J0GJn4_1H1&5TJ>?$FtX?Yz~2y+WjDt@BGkl*~@b(drn;pH)li#dqp zn)AL=R5;h#SEVpr87lM#_TVX!59FH~f1%s*NFlzGA?13gxVi1Aa|C5eV~7hDPTgUB zVWfK$CCd(VUvp89KstY=zj+-mZu-V*C+G_BA<|JEjoqd7%CFniUMRU*^|2{Bt($)T z<_)jI__>2qIzDW)nj?6t!F$01w;X#yoVDd_Y0CH}{YyiRBh(4ZUDIqLK(GYTcgVm0 z&CO~cusc57#Bj$WAZz(i2=l}B#87x}!%tCpGaax~h5CYIcs1rc_;@fkx*Z!W9CR34 zQ<|w)`|^c!UGNK~W1~vBpT-g@Fq)y~*bAG*w0wTtLx3LiyxbieJo7y zsJT=q#)&)MF0-lVe8($dD8_iZASX-qzEP z|E5J8e0jS280C<9N^`@_Ra?1UVS?mXm>lUjjt8T22^X#RA;NyX9$icGr3$mbARKDSMM?fl! z0$2&@0lLAQ_(+71C@x@n%iK#Nz|6-5z{+q=;n1=)491g=!>bcG@tjj5)Xo`Z z793noL+x|9Jkxb79ihjp$SE5##r|de))%FrNp_haOO@< zIOB|(@+*t$FN7m(5R%{AGbt!oJAivlD*Up40}Ec3QCx0u?5sDy<(idMvAHS|JWmsoa{4 zVp(9vZ`U0#7Q-%4e;-OYMG!K3Ura!nbpr!YUjcUJQU$E>NAv{m{gTWuIvin3Qk-&i z1k4Qw?KW`BT288Q^|HL)Ds&T`ib1=Qpe*lsF$fz+<3cWgkP6NWlaGTv55Ot05Pe*} zww7zBnh6buZNYbrCMu3bo~jJ&T;hwfA<+3NoGw5D7GAmOB1Gw=!0FdR90!U+Xzb3(;E8?PxIxKw$Y~kTLb-gdotPnn>}JNJe2R( zdv`Y6-qW7@)OBXhAYl`CW78NG6K~usc;;(8cM-<0CXtcJ1|{%fpwQa6zJ8(nW!19w zIwAB-JavAdlckq*$6pV8B+FCzQae3v4*98+9BIe=1=>WnFr~eTU(>7+pJ~L+)ge zFQVJ}6<+KcEV)4O%+%QREtN)H+9@9%PXDaX{(NQMoT#~m;U<8Padc#{iiX6`J?d~H(di({ z7ObRz6hOi!yms{dsPMp=kOO;vc+HKH>FeQ$n?!&Oi}? zcuYQC2Y^f9DTW??w2DH=<$bu5;3!i1+PIwI%2rM`_x1>RRK8VF{(yaj>pA1Hr^`y# zDvL0q2v2YqrW_%bXG)(7kPna!Aqwl0e%W2J8bq~oJLq7b?1wUm9M4+NTNL@k)zNRb*`zD%h&$Rf?$td%i0jp8Im zdihd=Qi)rO-G~xEcrJE7&s{r=un(eC;;dod!m0m}0ESz- z8xNOQZ^QTX9l6ja+yAMfVYaJkPE~ zO1v4xM+%niEjF?|2jG>c)hAgNKZuev|0GWmoDJm8z2<0TJPf1p{mt)vxKz$vH_y!= z)vOmp(s}}?x}Fys#UBRYK_^gb2Ia=}baqLWC{eHkVyHG@wfmEC+%4aI%ntwF|G0hA z&^%4uu94=xW+>j)#+Kr$#?CUWUe`3LO^KC<-&zTS@Rc!tcaJc;u>oEtt_!Lah(Q;e z?mwz&s9Xt5UA@ET#U8;*O|zb;q-qq{$!L@hmu@{^hky5{+c$N!+f~)uHb7oQ;b6UcaQG8A?>vZ)2t^)H_w3$f zVUaY}WH}>6S(Vl=ZWP}gbqdw2TA^{?n}^-7`SIBao{a_F*`ghaQCFmj4DrX?r-vaT zOYRsKA0>-2s#72wMl+gP5|K#}p~soNbn&pB&U~YT`O~u7?&0HzoO}dk-=}Z+bkGNp zGLeUpo4K9T)NUtRcjciX9atX-3|EJ&-tg0nFkf{YU2k{u^b4$aSYBOY;s9-gH~IU% z)aQAh@6n0c<-QdNtZ9edpPXEIoWxDlR+%*9oqzhqEkGMhJQe3d+qV6KGUxqH`C@zB z>52zPA_1v+xvXwCnOPNy@BF|5re}3V4~C|B6gEEC7M7VBFW)%|O|w08=`)e$r6Yc< z&a}hoKrJh(n$#-5%p2bjIk};q({6s5JQyKKWv%@K%nw9?uRQ71QSF3x4)FF0OeElt zUz&dP>C6og52#W&H4o%)$_2hS9HeJY|Blq)khmFxFXadw?9ArQiU-=&!{;e( zu6XffeLU%q9ZSDOO0+*(S?D)3-bv!d%k~$dj9o_f7LIgjLs^qRb|OxN&0pB-`!BS4 zb3sm8TJS3w1UL(}-|ifjjyVUy9^-s>M^h$wxhJ`jZKUy zsJ<@^tkHAsnS98NnBiKsekz?!oRk--d4JB#R4)qZ7v1j*>E98D{m-k4qG%{WV}Z?6t~LpU*I zvV#JEg)q+z(lrTnWz3(+?$DfA6Lqj>_scy^6)3NlCghj#qsL98cOFA*J^JRG%Zta) zmc-?w7n+B+-&~wOTFk3kHC+{FZ>OW0j8?utVB%8#A$Vj``+g0gdhY#)y+>;G@?v-> zd3t#3_L#Nw{^8-hb(=h&e{k>qK>dgi;JdJC+{G`22c2>2!J6Et6Z@qIFmurEA_c^b z;5KHTgio3Q4s~?Ut8bEi*6Q}8G_EcTJg~KchH>6oO{zj{1TlIE>tM`;=B=GmJty7b zCdr@kJNJo0SbzQ1o4>=&owHaY*S&oB&@;S^4SIf zUVg9oiV88rd`1f|2Ui6gcr;`B@_WfxC7--pka^ex<@>HjX*8`~Vs7l>BGcL4;HDgM z!zfvp^p*G8j*9#;gpMS^05FFM7>^IjA=?)gT zOtMBNi^}f@<)eYFrAfe~fO$ayyBu})gXnk!DuQUd_uu>8T%QL(deDh;!b87gW>_eo zHK&NHobQj3z>(22P0i?*&s8JyuZGT?IbqnjXt6HsG!|Ue7X$aa_Z@&chmoB79mX?f zyt(HlSifc{f&1m2Hm0L6BVIRHNCMBxUnTnE-eJDn@3i?yQa$#?*vAgD!IIMzuZ?pd zur0XV;mjOVneP{wrL*qwc{r|~1Bauqa-y6Y0*@re%}M|GaO(6mKZa4@^o&k-*bNy6 z=J1-3Tr8Jt+t(f~=1{(~`(5L^-A5J3pVq1?_Z|r=tMxmN__ejwI}hcxQmOT4lefwB zdMkMa_U)_dZg+W8;=t#k6Dow-1C(`)(b47JQPmGq@fLk|gt3MdH zPap3-?l3O&l%=3MlLGJaRI>yDWuXCiYuA9X-!uC3z1=4^J+(N`JwSf`-RbhCDYtvE zvds;NGU;$DA3ot$R#)#nQfO5!?=btjl*wp^E`CuT?h8>9SJ+A7lRVlsmNL($I<`V^o-hD`3^mebR z-5<@A3*)CCU1SUBRr{B0sM2Zv%n#0SWOf}RlteG$kV+58kvdW~p3U{=bFG1w2`hIv zW3sKS-hM2seT=(Lw&1?2we_>J5o;0B%YWm~og2@44(@R08?l|}b?)rjUEm|{>0>2C z;r2Ub{<~6y9k>1L`_Xtf`R=E|Y%nIuoWret_?TxGqq>i<8h9IZK7O1?WvLu_QRS;j zl$XE$G`Un-Ea%0qN@?EaURJ*Ibo=>J=IQg>&k4P_copfNG_zf_t6MKBDoCCW>HZw< z6&C3*dT-}u)kRqjj@6~htja=^6f#rt9@-cxJ<0PYnuZNDU<%6%7s4UH zCLr6|M}AgvIcI&-mnN47k6!16&mK%Kh@I*MFeJTNeGE0Q)KrTMTcmT#kKjbJF#XPO zGXMnUW9{U8Y&z^st7EbsUD0Y|VaYDsf(d0Fdo!H~$xt}96o}j7v0p$E zEU!$+)|6aai6Xy14D*FzDitepG0MGu=gSV9bfg3F1VRJ29m>P%$zj#yJ)WvA*3e}c z^L@mS!?H>R>Wm#x7&(9K8l;W6C-`MSJJmyUEZ_au?hqBfyR1(_=5RKeT$pksQO(^M z$zkCb+j>V>8SBPKlBeq=;T?K5u3W{$#MTFK`oI4_6QJ3@^_3s_JG=UgA1cR3y})S| z6pL4M%OXO5EEaEQe~g(S8JtBr(57u_D~(+RnFQ^)DzIk`FlCz*F%dOb{TFvPH||jH zJ-JgU^y}@8p}N1wgFu1r7Z%FJ?^6V0bMePcySYan)$f7_iLBxSs)26CX*XBjga7#; z4?q(-=IvU!@N9wF#Z3j`hzu7B7d5IKd&uE4ZLoi=H`||VRfJbT6%p01K3_4)>Hjl} zOfv+mpr{^GWLs}SsSs38#2J{tA?(YJANi5s3w^PVa;1E$Bab;p6&=<`2QGb9iah8t zVfFFY&9oVDy}k$S1+VIuC&#Y!*e^RMJ{L?z>xw?4S)dJ zHByxQE_RW`1{$$FhJ&RS=ahM*T;wf?7OxY4XCpRi`z7WUeh}@?(#_>~GjHtjYe(sD z|7D?mQTi~OfVv9~6vEuW;Po4S(Ca+?y4SO9s%Pu^_qwjCuM{WGvpC*};5&dl2Clk& zThna&{sY_gye-cgjZPS^-4AWdeu0N`fKaZ1drG;hX=@ekLxOTMM+8e;+0wK<#R(6I z)^M~eyOuYhCA~4!IX0r7&>@()9=R6K?BhK!QVyMyHxs8P>2Bvh86yw51N6)R^Q84< zPh4?r%@$7$#n)_w>3!Fo&%Zq96<|iBO}pooGn1dvW7?~F-1?wHTUVhMhx~|K>g!yO zKcOGfBWWWv4gp6qF}xl0j8UQwRa+I; z&H}8F!b8N(5Qp4_OyPM%V=CJ?-RHB~yN2OMVAXRvIW+eSUQyWeX_l;=siI@|rp9~P zXU;D3=aV;5Q(rB8c{!rbX=%KFKN;pQ9(x zB=3>jo+B1_)DB#%t{E7py(xwHP(b?IZdd1{?x z=tzn0m2*U~1G=%$rW%kFS)7YsTY`yXB9n(h()*B2XC}#CMgT>HE*chm3 z3gQRxytY`*VxyrAFg48@OnCwf7HcDwZxoPk`Y}j5sboLu^23vIWU!q#^5<;!dNpm$tOY&V33Tzj(Nge!Y z*^)02TdFS&R@M#=*W3|FszstZwXe&oURNcDY|dxT*41%&l-YYD%}M<^X}XsN3mYx* zyL65y5jynOfvpUCj>&*P;5o=59{;Y=L{cmSAOy-PsaAg?dC_kXK}OTqs3|*KUB~=y zen_u>Cnzw23y%mfj!{4lLu+(!P_&U{0)eEP4dzxs$}6W5ip+W^iv=)}%f@lYSV7qB z$S6tyx(pk|(>c>?D_?)MYCf-dU0U_JDl#}rcX()*`(?fUQflJ!leT>7#MC-i_~W|F;N{>RD`BL_f-b+PxZb6d z9mSKQ|B8*MYnT{s*bj?!GS_KI$F2$wTOJ{aLVA!2VYNrUrG+rKN7DM<^0en^0YR2Tsl zEcg`_#h521O&`fp8Dk~S;9AH3J3q(cYkO($GDvQIs|fW2s7xIE7MzkB*)>e#)Fu!!-K0S|qV z!)-Gf7A?M!`$MHzkyp&^SliO0y5ejvX966qo8ggDEzUsQyuOTv;0G1?2QC!CPPl5|Q#Ba@2`Qz#Jnns`K4RXK6{=>5Eh$QQ( zkCQ}Az2y7vJrw^eb9(W!=s%=HoWB>BhUO%9rAKf0z9&1Ga>4+S84ae%anqIs=>~Sv zFSHlBK&>);;uZVE#y7{c=Bv1UEPH_f4IsvPmfy1gHByS40LZb^%Sv2@iZXr*wmujw zxU8)1`_-_urQYAMeD6T0{ym=Oeq9tGBzpy*W4KwQ$za zhno$=k6jpoU@0ml;;I>%rP6T}Q%C<59c46)Pd03dN;m3n`UUp*_7VsI!oaaqb6Nqh zS5f^uPaVrzfFJ>}7?{g~JcQdK@*V76w-i?`lHPDa3~ywsX!F^j z9eupjuji(#DgC{*dttl_pYlbzT0Al5*yrspcT-m_`laCjPYgiWG6WPV5-_fOaLzwV zHpZ{fJH01OOCaCX=CL`zscWCNFyQ*zlpAi6O{csR*zw5-zWtyBOOflA^YdFO;W)Ug^i;Hv}lK#yROh@C*Eq58s9<+(<8vp^8O1Io4?A zAs$h{=x8B;kQT}>dkO>iGMLbx+u)IYI4nALs?jIiK^vUn7@;*cOx`wSzL#b)j`#(4 z61^xFIEm;4XaJJ}-I$PDvf^C>+e!chn9X43_qeF+a>5&w{F^={v|YI@UuF431GYhI z1jA?q8-cx?k_$IIn!~1A_v>p0FV_}#_ZPcG;3YcucK-D1Ck4||d(LL}&Z@z|>f&zu zr>?7=BvymcoGHD!IOm)p!Dq8ZstcwI_XKY)UN&C;nV-pn{?B5@an%X;QaQh)4i(&%qKxP0{fl|G*9b;pj8VH7xncJsl-i8 z{(c5d_6b|*^X121K6XKVWl)`RY$54R6#KbVJTZM?@A9AIDP540%D95l(FAH#k~+YX z#jO%i&h=q9_Wl_-*(+?N*Y}$ta~yVPn1(x}rpyH!>e&%AsCRxBN>ay%{twjvmJCU) zw5~5UtAS+!GB9MY-pKE9Z`U4n27Y6pbTd;57Q?lxfi=Szq_UPg%VeB7Mnv9n7GY{) zU#a7FA6M|Kz#ge6kCiw5dWT?Iw(kF70@JMccBrmNNMn=Sa3oA_?bi5UfBktw9gjf3UNonl7pF+f3Jnkky__iaV z3spJo@HX~9-spCRHYN2K@!tu!iBt|CxHNCQCx>qb!dr7o%dWb8asB#);cI78qh?l)jy2LyY5a%fY= z^q@jihC{D{va3RK=+n$6sm5Tfr=4y6jJe8cPsBnYbXDS z*1BITK2`Z+m40I{ZW7oUzs(B%<51y?s$D@F^Yj;YxnCNj-*lQeJ922Xi);dxnlkS}+^p~tL`Z2D=z0x zhl*ZS>_Gu65%a-E z^_Rm_GBUMVvuSMHym5i1-f$ZUvB62usH89oTsjeAFXPR&`QEDxh9L}32BdA(+bZr> zpv*ZSPQP72)Vpm zbankdoxy{_fiF5bhQyc8AeVzZ78^Q-31DtTm^%Dxs4y|PIE0~ukzwRAg{+KYJWr{Z zrj|Cw$PnPib-Ra_Wp1`3dM<|(JBHWQA5IZh2D*_R(31Ao|IV3ATT8) zC{009OI+#Nl@9yT%0}CafK{;4#&@wcWy}C3M6zugd!Irvgu?QtiT75VNJ0u7^Q<;8 zoIPi+N?RhyZq4j_g(rN!TDqp%^$Gp_l;=XXhMkc+z4c$`775FyeNwSH!sl(J6>FME zY&|$+uPOcde7TDhE2Y8!w0%5gun~NgAC2v=o}H;KyLGeT2^Ld{#Xd>+XIojh_vQGivM+0u)im*aKh)CmAfmxy zG3C}j++r|RrL&xKE}b*Mv2~NNCs;BduKmjQCOUVF_u=w5_l@8*`2s?9KSJ%T$3e#( z<#Na4O@SGMC$b)A4W9TqsLZNGp(2p=OIHmZPiyECQ0VV_5Y4@o5QG2r*^`%WzF~pj z3j=EV5q1r+b+s{Jhswj$P-r96C@d#=~`MFFOK{TEyQr5bLrUt-jw?_dt$t#nwH zcggex10GpgCP)zgTa4E<^@Vg-;WED6L z5><0^aHg|Rfg@0$s{Hd>RVB^jp6{8r&^CH7qW^4WV2|mt5YEf}nv#^wuI4tZy7&04 zEP8J#gDrLuu~}%FIf8}&Az^fqL(c}r^K2L$gm9=xWhzS-#GBMqt{+T79SJ4-NBwOA zdcWdKP~S?~&S98cK5LB#nw1=2NX(lV-R)43#q5!@B*MI$Kd);z zALWle6xwX*Jl{zUhgt*Bn%i1E#&^zVHdb7psVW?~nyoy;Y`A|sj{-m-U)P*g#gVbb@2ToE0n4c z&I(1V7Of_m-w@_Vn*2f{2#h48wd8+3t9wn0Da^}1*ii(LJ_WJWA^wlDp%;w3f0C+# z!A*P2ej$=|4V_5Cy$?1-wo#ZXw+yfh4KabLDG9m77wl`)^txjpQ`er}eDn9>HM0L5 z6XE0@;MJv<)IpBuVX*eIB|oJ29^HsGj*nGk1s_){OCWem1qNTJa%o2E)=b3!7L&~@ zMyDJEzecvF;qWPW$Wv2!B@;76DwwKgTbO$YLS(T9k5t z53P+v*&R=$k~E+3s5K~YpFf_A9QhGWn(~5+lriNWi5kxkZt+ktSQ!!g4bkue3;a9% zntF&1 zeuGlRA<=0CYNxIgm0q}3q;hG+LdRv_&+a@gN@8Imh;Cx%3m1!!EIMcI6S#3~Sp{%1*-RJaAvZ-Kakr;L@3qT-g29S*@yX>8 zpK<9MrLlcnwjI$yW@oTvQJ=AII>TqJfh@K(gfYzH{zm0R9l-)wu}8F9w{|=&f8=sL za`Ys~FxZ%b#rY~45qR8=#egsP7M6Klimj^nvQ}A1H@WMpu{^nJ4RT*nHb&kf00;!r ze3EjUoOIYTfM>((*4@dk_@gcShkkgBy6Z5@Ccs?6>>|YTg~KEk0t%7Jc{ERq@1omU z$Zc3rx{2JXFRGZqX%w1^T%sg0!6Z5lx@PKvI;k4N6C(%;bCV zJGSo@k*ILQ6Cu@KJ$EBozcd=Ls{G5>$|{=4T|bSbCVx(s0ea^>rj8?M@M>`(;N!X1A0*^b88iVe#~MlGgiAI z8D!#6n6}M40w{cRcuH?=XgQMJ5M3cdiN6k@$PEp0sNTlutbE?RHM{m@fLr=jB%6J9S-@Kq z@Rxb{_Wn2A(-bN++I>M}UoYfM2>5lH52vi2xvo1qQ}qnP8ZggD`5md;DPwQ4pabbh zhpBw~EuULAxKfymU2>#g?yL3OR{0XN`SV(|B9&dS2%?bjGysCk?&wo zh}IFZPD2m2#=bPXTt3C%UjsI=y}0k#Xf_wie#iCJA+txD+3#5_HWNFSW_$0thr%{$ zwlidPyMt7Eu$X)fbaiNOeNUBwesJ~7OjX6rxr%3yz<5^WmY6Ae#I!w8`u!MZ5L7e9 z#!K<>o?F5xQO4}EPm&yc2~xDRm7J7onVu+g%@pUZ1Q84tOQ^S}xW!;JbfJpd)6D+B zmbrNQ8)WDG%66mgP-qR=%> zoKIu!oR?JQp=0yaWUMW5KeXBwyZIXRr(^zUq(jmr?30 z_a6D(um@y|9saqRh~s{1u(VF!(%FVlbFx~ri-AkLMdo1CWcs(JD%Z7%gtbJsKX9R6 z6JQB4$ZMrN@VqnFOCKuRAPO7`-2uYn>a`rh)<`K*^|I`nbnY}jzlW0(Y@^!v)n!-n z)Zlb4=*{2>h@ByV)jl4ig7R@yI;9^-VYVUN05}8n1P~5nnwB_nS~Mjdo4o0VSR8lA zB6F8;?-s2DX^9>V@?KKJ^yB-qUzLvPUGUx>qW64}g?LO9N>0i?0bfNcGjX!MW3I~2x4ALg ze^4-b8BiqeccW8wUK*oa)0qZWHFgFPat~}Qwx?ZLPIC4k*r1&)GDrt4Gj|J}a}DJd zlI#)v6*3dshl4B2#9G*}_&EGl4!u7hauF+Nf+Uhf$TF~4Whz4##GBGoa{c>$@AbC{ zn7vTS$E=?lih2{)uqYU*k<#0Cy*@4C*5I4pJ0f7O&^T~7Dg=Zit)SN9=mzOWS&jT3 zn&=kL)ODBGV{qquT3y-ft;&Lt%LVEVI9xhbsZIJ}Z%N|5qb#4DDK8qic2Lbx)#RsX zg@b7amHFeL*bc-{Kz6C~Xk@8VdTuJaLk;J(l@v(K$=q1%$ScKe^V0ztizFZ^%KB0U zDbF%9iMEx4ZlZ^$1kZGJMt<_6?))_*+q>u&U0af&1M%|s(+$XXM`sZ5-H@r`mhG+* z`a_3oD!^FJ0EQ(-Z#wB=pG|0zXM%OwCyCgt?#j?gkH>w%n9ji%Fhx-#nv# z=Zg;BP-stBPt=YaQQ%P64iGj+uelFba)23uenpFKJppvYyaJjaSV@ybNoSo5JqU#CmVV=W;6Nllg@>SpZ?d1!-ZGNy@X# zND{j46X!Gaf)7VHugFYDnaJ(k$qzFfNwQ#T1}TH^++=~l4jQ|im)r0UQ>-dZ;)Nd(v%8~dM%h|$s@HXcLQ zIMVIb>vOKsIpaVg2Oug+6@hi3PF+do$Dovpz(hsS4t6!IDnqNZ|BwG;*5A+1WiuQ@KA9W|+oQ!08ykbeb65I_*wSmw?qSe@H7*gfK3yam3JnJ7 zbkLiQVQUxJ5OOm&7TOz(Kd~nG{Lz*%;E@lSXC?}rb46(@!32@Ayf3F~ zTlvXyWZql&&V_4`U9L)}16$^IR#(QvRaM9O`D8i-OC-}D3s;>YWTKQ71^2p;r{LP} zh*RD&@|NbC1u6r>u+@4^J=j{u((oGjWroo_kpJa^)^THdTxisGHQAVVj{y3$3yM65JWEbG%(MyM*|55Gca}bp z+Nk-cSmAA{2{6=)g$=Wt7_ZNtB%(-l2s4}`AwlXS`xGS+YNYZ?Wa2jxwnLj9?Kn}@ zvBR+6t2*lnLwF4#R!Z$L-f9*&d-5(7WITok2IF{CH6;PW0QQ|+z#kV&M@(@mF{#ue zNZ)c?FVa)>mZCkRx`}-S;h{@GDB66^C3Pe84)OgjkfURCru5YrnmgOjYF^d}{R^T} zng9!jZ)U4KreQPe^5?qtctceOp^5)cXao*HZ#ssqan_Y2jktG#el|_}#tofxMMi-( zG#GY6n>?+O3MUd`f!SL@0XODabkeTf*r$D2krDQwrTT_XT<`^_j)Qw=Q0Y)pi*4F3 z>Q#PgilIOyT%Tj6@Za(Ie|akFTbX6*rr74aFRiFbFjrgzN(p%#0(yxVjK^V5RNWF46*JM1n8UcoTeen} zE)12o|Fg$$&U)XKC28Yv)hVRTU*YCMIRVC(_r%w=Jbu!&!!)8%@sPpn1!B3={p{Z? zj9Ya3%}&)JGp{Syf7nnrCd=o9$QL$98#UW-##9iz0ZY1R$Z8nm^_^X9U z!_P378Z0Imv{tp-ATr~~MN4Kyim%k1Esc-p>=QsU zLCLyMbnMnOiKO*}bAL>6c$pejW&C}t>xieh>%vH^yDR*~e~EET zElbNSJ2r;5v_4=Modw)tJtvBa$7Hdvk;7Jk7@saG;H*6LR2(kVk1Oj++};!5m$tGX z+Qy5jI1mh^5eN*+h!&;pZ@<`B4+0vP|Jp`#?V2z*eX-U@5`&MKVqceyQ^&o%LHtt_ zH)um^`@+sRi${xXVH-o6YVOet#(`^fP3d3{Si$K7&jcJSFp1x($+UKGA@Bc>hpHmq%1E}A9Gzb&5E6HN%NlSvM zze4epE*t|!d+urvh(GtHH&@=AttvTly+|z$jm*Rh!ru*@R9!`#*e}AIsJbxx{%DlCSD=^@=N^`0d|tdp>sm!V(9!K}NZ> zo+0ZR*^zJ_!|yfWO~O`qVFDktti-ll&jM!$C7tV~<7H(Q4Wws*?hFYjy3RBAh$! z(7F$sRCmZ$mm=ta~nR4mbiqrjxr^I}oyxGWY5n@3#;zch;)xstC|fI_9CPr%*`oq)c=3?%$@55{O$ z7LCsq`fTLAhrkW*#RwA9+b%WyOryGnZ^wp9?CYKf6O0y5@m7e8wQ|x^OP!;~4v^y; zJhu}i%%kL8`lVkqX}D8RE1Znj}`W^U?+Jd{i}`99X6{X0mJ?__oYW zS*rXSNt9>taf}?_FtDU zDU&6emE~thZ|-$j%MkT}MB3i~DZD-?KHlQda$AULltQscGZ+QFJX8_iM~rb9rHG5u zMMZ!9!T49+C{#aWb!ZUs8lwzW?1a@QOAB`xqjfh@`Lu5~PkqDJ6Jv+$8dpLXWlREW z4)EQ-UFLKtgfSq#ffJ5wUx+?j6CG2NyzoV74CmnW64bJTUCLBTE`QXZ_w#N2{ZIPh zVs^&0kx;W~XuINm4ab0qlXr4Uw3FnRmL9{-zA@|NH3eGfw2We26L&x5r@ zi&|GX8}shz;=VyP=RobC>f@3Rvu#{JUQyysr;0y1BI=XB9HZ`P@Z7FycAA&~A*$*R zQ821`P-{a%@=>a#T*8hd$7xsnOGF8dg0M~>dnmisucgJ;ZgPS?a7q{#)!e$c)EXuB zYgOE*8=V7YPAzC3Gqf8{(_Yy%PC4c)JFnE!9-;-TTX;9Ab}S?B>k>|-?#z}wR1d^4X4kxhs zb)@&7qu<~Fu*^FpD&H3<-r3Wkl0dcb$}*$b2k!^Y-{R?`EEGp6B4zvvkllTm$bRsu z9>(HsWyS3|uhd`!RNfjDRc^b6Du#|W923zF^IlP3nYt;kcr%{984lmfWQ*KJ(^C7w zV{-cTrjByBz-`vlP;x;%penxG@F~FE$U1*DHf0d{5wzMPyKM6G| z`Kc`4d$PQAYFj+riPLqTu7(%2G(*Jw$-$^u01ngZKHj>f}sW z*{zvMB?gy?R>D?K41!lt%1j)7Q$F(46c9umr>3;w-lt;$I(&;L#*`u|rGS#x+RCDm z8OAg{dUH!YmE^0mm;$^(_pEbbEOycAqBwoBElN(BU>Z6ZGAHEgK@pva0t!Udgs@<* z1u_6>)rz!1Iy&o8y7WfvCq_@S|Eg1n?!f67!D9~nPosq`mb&8yX10+d4+A*fZqaNx z`Rr(o?oGV>0S?bT!U@QNDpMHi7z)j(>i#WEYA`M2ePfp1AXAxpeyAWr4*k>-9zriv2n1|j7eN73Ze0ngE z6>?cqMT|M}MUgJVj$0n^*dwHl?$H3{b{@AS%F{88cKPFK-_Bja(=dB5_XoQ)eM&={ z4-U)sqP@@%t(`C=2}x6$D~Yj3PCjaWQ<5ZBqN8QDm$hKdhRa}-1^7o$XQ7P@m@~aN zStx)lVRB5CnNfHa`&IeJ-pq70JSgqce zo~idA+|YpK(ET2y#0YxPQgfw>M5}^ZyRJ~Xyx-qn=LFxgJfvyAQR?FWZPEVNiCFv~$CkLA*<==YAtDx`cB-FVFHMslPQO4mo(F>V%NOou?58NV zG*SdB6@+priOM~+Ij%us2Of2TJ5Faw+#>(>FUQ>@q3t+yz# zTx9IFrN!3fhl_1R#}|`S3Y+Q7<^~6|smU4xe$CXCQ5sjqW-Ici83;4rI0|B1Ox&ZO zF=coA00#hn#Z-wgJI;!NG3n2I35Fr*K=F zNc-ML9?=EHX@xd5g3B45*EjeW^xi#vB|bcR=JY{gYW&uga#8M{ZyVHUMq!P z&i^CW;R~M#z$F{N3;&Gie;1?+^vn3obo(E_wp+h%U0thvK z^}AhP^z`q4|NYy83lq$2pA}F%3^u=aGQbOFBi7lD@iVXq zf^@+T!7^WP6J7b0fKE~NYO*IiXK*+tcgS%1Dal+ds;&C z_YOx!_xKqu|Io=aakSfL;$&x%q4Rpq*KkJ93QEGN`1?iqE*1=g+5Q@%>#qZKCjk4EDDQ9$~dSGO$-emz%(&_wz zXKJWz)PG6?Ow`k*J3L&>!_Byd+|GHIRg8MO>6+?lTRU1O5*&6*sq3h@Z#={8#q_fV%+qVxM{mj-BcWI*5curx8LPHIc^B^o_T3)!af%!p_TJl9uMR63IW ziSZp&P~j-Un%%Ta#@Ge$x{sD(=%O_yd!aQt~yvE6}Yez zEv8c$&CPjwgi{RbP^ z=2g57mVp6Ny6)@@QQp!@lF!Y`NzE;C-MKkZdP}p>W@8UMEk}=Fux%ak<&Y!oAxrYF zqhH(LSNT$C`}je`W!q%`56&+BZ=J`wWPiF4s*N(B^9;WaBC36&ax(B&SD(d?Kq5kY zY4po-o0l=Cj4=ks6Z>oYe~zjm&b)}Jafx~9f>4bI`mWrJ2%o#%(lpJ<$t@;%Zsv@) zwCcw8bkgzWuS3Ji{{1MnqXTQtVRd`^gM{v#>+U&<@Sm?`fA_!sH8mgn>&6Q9LByNM zYBjH7YMrBBl&Yvs{t-k>8xH=#7FUJH@L%2t1UEP4mCoIlF`a6Nrl22n3ZUPVL7tl< zrEStpBlO%t0yW*pC!e%l#n++X!NKpHxQ-*}qZuK~9qr4Z8ST&~I9N&{F^K7W4>Y2)h5&NkEKA5rhjU zOd%k|e5g()Szsm5XA0;)9?|fc0!AN$$7KmY0@k614%Qnwf0H*Vw2*l@){V7^uLut2 zA7Uwln6jgksDdv|v_QcJZjE5-3&NT0^cxax({ZI&IaPU{4!RudM6tO1X+DQ71PP}F z=%DDVo$1JU!VpZ_on##}h-UOL=IOtf>UWs)tV4_l#s@~F?8)Cy%scR*Y?m-rUju_B zHgpOt@Hmuc!yEddLcM`~>}CbdFIe``CMLpMK+(!;kD1NDp-qefdcJ+NlziBfS@W;D z!^wfcau7?er^z$;WvnX&sowo+gPy%eS1LI72E}^=egDUk{vRmw@G@vOT0rpE{SKaY zSNh?Ck1=^w`VGO>4*=AWa>F;PR5GSgcvJ@toXfEfGmg5MHJ@lnQpZ{(=-7P>MW5o+ z9T3JCID9|LXTFJkz%1MO0rV1uwJ80{RG^rq4`g2Y?`$>MDqe}k8e(72c@g~4oD)E*a^%HE$0&95UJssZooO=|y;M0s~M zP)M7{jiC-i3A6LD2%-oaF9V(Pl0@{eX3w@f>KVY7u)F?vA^R)o6S0`j>~8b1e60Nt z{^I4=GOk{{OE|7CJ)NrkykU}hJJ2^fw(8E_zjzP1ZY-nVMBZ5U1E_xRyXSd_?mw_< zrlRbk3@{true$JK#a?oie$-K;EJvynz|w4VA-@$jACcaMQkpDT8ei;;IcBkC=ht(9 z#T32@liJ@|;}Pp^m<~1rdTO0Z{53{0<|;NZqa|Rv9?Wrs6ap;v_Iih4i4_r*W$oJ* zp25$EZSTUopMzoThww8YnfvR=g}=J3*KD{4A7Ha(v!#Bftl89vspxI@x<7-TA=}P{ zF`9>Et~(2V9WVOp(Ph16b4)h_T9BSmznV#&UB=Y|HM8qd>nTBASg6W7HgkZqhFq_l z_6p0RjhvT1%jv7DTR)Z?>bIw9?3SqUUyUg71k2GE7Agw5uOA?-Y3dg6(6s!pg?E0V zG8q{~paGyq0WrX-!X027#bDC@Rx)1qcFM85jJePIr7w6__+dt5R~|7PvfD-G`Iam3 z9%SJBbH1`X-Yw6_{^KBJ5%-wsl=)EbK%MocwOYY-CMegFq^&cbYn^+t=q8(fH|J4>}p zjUR2eJ8qIpHLsOHqp|kk4ahp!H|Dq4y$TK_u8!S?eY2XC!-~O-c@0{;ec;f?$=c`~ z$g=BO$}>a}avJ!I$1jMRMB z@-aBN4tY2A{AYLOd!S-+qEn?u%^P#o_e0vDGPnjqVCrVetL!j@Xy_(vp6Kb)72J2# zLX@9h=vd-^%ju%;tIV)Maq5QRCIl)1l*o-P%co=HoyLRgVvo*Yt0}&;phQ0?Lvx86 z#pcMkOKdL=J6tPrPcAz*{XiU{t+jDfu8)Oo$oxek%RHP*3odbe-_wqfs2jCsb_e`> zl2H|sp}V8RoF-vNkqaNVY0a(Ind~SwceGV8!(`#V@f5~OSxf9fCO4I{#9;wFyba0d zGfRVk?h*d3LHQCjP`OG&#tJ@9~m$X7#b&MydIv0dG{20{5J zG}rzMY%xX-y!Gz<*T|H?9*-yy1e>8m3g%K4TSkQ2f4hlC_VE)+OeLEX__&mv%wVJ|@vQyC z8=!AqGlkkrq4ZiQ?vM``zb{90t1&Ct=R-HWG3rI4=eKsmu#93^F_Li)a(|T|`$smk zIV;Li=5()&eC!1(H3mezzn-?I072%-OgE2NjBPdrMbdrYE8{83*8yE&GF?3dg*pmw zHR_EH35A|+=FQOCyOQFxiFrytHBSk(7Z}KZR@TSH8o00}LqPBch`G#}83Gd|g|Ow4 zoEHVNIxOi-X@D;*DHL~>0HoYOAhrMym|tvCqyB|OV08i5(c1skrM?bSU;kfCSdyxH zvO~bdN4+W0Ma4Tp&;H4y0}e+rY4f-AGTYjX$J_In)FWWyhR@Dn{{(#}n>Y7Ee$EVc z?ti*bpP&-*5uM7ne;mgtgOx>^z?<> zS?6YoL^yfhj4SdpIe_i0Jn*AKcdy>c1mDbfdiH)J z{&fTK{xT(Ug&g@DeC|GL+U_A_*+T$fPX52ZsWl`xq$R{bV8p;shR~xqMuKwGb>HjEN9Hy3ibJ?3l%{ zbWPaXzZNAT`}b?UkomTE-ghwfDM4&vM|hf>OBZ7RdF{E?GAega=h^8Y+!D86cj)K$ z5fBXSJ1`_qzd4(h-t=LdRUO_3fB(IzKe?$Z0UGQLkA;a}CP16Jl6UuX?I}Sb3p7gR zFO*c=8q+BCLZSun>ea10AN`b+^o(sZij1m9muHLhs4_lH))*I(H88w?i^wGWqI@?* zWdfy#LQWOy4pRE9`YHEzlM5+SdUl3`E~Sr36Q^fy?A>CVp6yMgL^x7(9kMgTR*mHp zIYmhwrBKgPm6QzN`K4ESgIv+0qCKVLMx9HpiuNsrN?};sHlV|dMzwWhE(N!?2QA8< z6!$5m1kT~aOTj-^!H5+B*qal5Z;;k(3>wcrZpIA<4&1($lpJv}^zdbLc0WBerXZ#p z0=&pmWMMw2&h^&Qi}6bPQl1&I)ZV%jBu`%qZfgr!On)3+-E70;?7Z2^U>;)_{fbMb zTrtNGBdE0#VZAOXnUXedk1eehHk%Lq=&pmBKnTOY)00(`=`3UAkwDfed&e_gu?2)y zd(bJ2>|&(ha?)fIeXm1uMv$krD;|r4lZsQpeQl|+D+rVw8EY%^Xj^*Ryx6?*>`s%@ zj!36PX=Ie6G%`|JhHg-`QwuE03=Yi8R156W!P%-xV6w0WF&edRj~SF^1-b3A7pHc6 zpEny~!akv_r@gnh)3(P07jr|p)DEfLl{I;>nNe3Wg?s;(g^tWUbN~hcX>}v-+ZCzPuUX+0FB9Z_0_q{vzNT9JY zb|+ibL9?wYPN#p7yd%(MM=m<;P<|>uXUCJb(+mK%B%)phZWN8dZsV(Zvrqs)gayc?eNkS)VvRquTd7qK2*sS2)a`1ZG^rn>_*>wk~dfwa^= zZuktRO;ms$E#BFdYD@J+ohh9Eq;3wte3K>fhF@b%?8a+ zb4lGN+|I3#PjZ;uPrtR8?x4jVOcx7X(-U*dvOzA+_gb9lU`JyxQ< zwgJ&$90mO;QPxS&Y!y^h`R6Yzrk}lhE-(Fjy0T*CR%vdyW`9p)Ag*HGEEBG$QnZvNtGnU^{(JGGPmS4-e{!+jtLSXf0QM5n$(`|DJqzq{HXi=jXw%islg5{CU_m<=F zk%BZpz9Qg}s?~5U@|baR%Xgh7zMslv@un2&EYff*E0h+)lD3xc;jJxhUd<&5>r+$z z#g~@-jX!txbd=AW+iZ3AeCfw=b~NEHfak+XMEFq+`#wEiU^=7RJ8$+d*%pyTE;LB> zNR17z^NzQYEsu}D(`~S@D+JxX@vMJMYjNDOcp|sEc_m1rRXE~Uon4MEa;QABZYe-b zp*Og(I=K30RyYZNUG?$qe{#rPAD;S^0s~i^MbE-HTWtEInvg)m0| zEZdK%NvQ?~|4p2;zMiV|mb8+T6uF(kDn8WIAl_u3&=x$e*Yw0%rfcd;nQDDTWNHsu z4TqOEWkw0Celt<;+JO_2JCBwMJ0!6D0=L!jv9a=1w`_1ll6=#{u%5i)nm|ut%T-K~ zPQ0x@u#2wQ=LbD1od290Qxy9OZimgxh5~*2V_e*`cQ5b@tk!mpAEo10=0Y!$`NQT{cN}hR z(M@|vBH%ckUH+h-b7ILU`VOQ0nRZAUvfJ+)xi{yee1d zhwrT@{P?!I3__e-yGZ5YOj*U;OeOe33ch+`i1}{EvfZ)X1;~-90yu89-$Zt0{dL1p%Kv5ZX1@|(z@d#l9IqA5CpkW#zte=1(jVJN6!g= zxM;ak!XP+?HauAej^&{tiY&G_7jlvJc5LAf3~aEM_Jhu;x`1>t`V|tqroMLQyz?A^ zzh?(2bY|Z98<+na+z;H|ZNre8GbJGfydl5py!}jc*~Ja;mqz(=gK^qYlS1UXvt?x-fx{dnW_f8OhNY@#*6bJU(jaj3CO!Sy(Z`a#A z$Ch+)iJR=zwwliZH$dDAuV_PDqeme+P1@-5Anbni_29-U_m^5;_~~t}zY_br@Qbsh z3t{)82jFjye~TK}@8Nd25Q+u?B^x7eI)X1cLYY(&_kzT9&d?dAT+7Af1ngq9gcWDO zsN{OK*9|PR@3``K0MQ||aTz7CmpK^ktt^xqie(pZ5liq$p>}AugvAT+JnFYF^ThcZ z*nbv=fOlEX{Oz_uex2+luf2w4g%ihCIL$WD)JoL|Nn{HGAsKEjfBqW z3Aq*-#3Ngz8a_m>wYtp-frt{bWkhmXpIK5DsRK5=Ce8Ogx{$?uNXpk-rn~uO|0|j3&$%62( z27wXIIp|nTMlXZU@tpv<)=O2O?{5g0qJSYcB42`eE57h2Rq@o3W7iO9&BL1p5wnia zN-}nWSRB6M9rM8`Q-IczwLfIbTx9HrEQy;0fy2_LMs%`nJ)LGhIT7vr zB1GQe{l3m|49jhW8@C5pC+ekZ?%+4~^_F`ccG;6>Km8~}N7aQ8&6YV>`Dt%zio5R- z0R-t%r79vq^c6OG?Ak4)mmZ60;7bY+iB!KeV|K$^dfC@#6?K@W!s)Z-eeNb)=3g&@ z{;fCMMvJms7KB^)1+nfLC#&kZhviGt!TGJCvYNiE$JXB_fJ>YJXR0yB-?`yY5 zNb_=Z%`^0$98~04*o2yb?bQP!9E=#Qm7dhC>iV_gmH6_9Nw#Lj299)>LSssuVWNw% zqp8W}kq*~o_f0sS?VYpPw61rot_0SN_|Tj0AB;_6KD>j--T@)y4+~bTiH@(BZ%q_l z#O@-IYUoR(MSx#Kn_c%=@V<;lv0k8)XMuiTP=%qVqj4z8lbukMn~*dPX2vJ;t{XNj z-m41|-!s|hEO9U%MsKdrXZ8C>P!#Q>U5)>oYltb&iA$Auf=xy(^fwvV@(ng9+G=<kg zpIv|{k?oC!tBobYG>zWk1HR6&Ov@b#Pv2DYT5P&Wb8l}&_gBV~PXt~ULJWJmgOyNV zZq~H(&zH`7xq!Naq{d|*`0}*}#<9!|r+qH-Zxn+6t2gwbMOi);gjx6prlsXJRdnhY z=IFAO)XTo2MXr85D(N$a+yy)=>g{+=r6ueU$|!YJQP8Wr}R(LX4R z{BlB&19a&`D+Ex+S4KFEQQD! z$1+piI|O-I+!DxolFAi(E4bGn4Z*NF9aN#dF4J!1V#kjiIKL)1j9?hsb!mtrv#hcA{|d2YenN7!Y3 zVnJgfhGmX4KK8c=2|UT9oWkAZ}RtR_Cr+wO+d202s%xr3Ssz| zYgFmPwzeOCfrat;Jb%GR#SrP2U@^C+EMvc!pH_>Gi~lSZU%URCRj*5RFd*Z-@t6@LO7ei+Uv&M=Yf?ovT zD+vD(9mt`DgUik@D=Q2oSGoijE$*OL3Hc4rC0br9G%u_}{a|^NHu5 z{EvK`$`9@epH;f@WX3;(bm9SNw~|PkD;$i#);FGzE2lpPzRb*w4bzx&ZbX<>ilUSc zR#ssu@CJy!HF!p38_hZ5(DJa6@LGplyn&#!UK^TLa<=x`=%We#2{W1&FA@>3JGPfR zL7AY(7?AK@pQSRb_l6@NZbVjb>F)EhR+@F^f-il3{^mFIhHBORPk*bQ!zt?LYYlbD zWbrwlZ$H?a`iS9lYGc6ugWE&hPFm0VYOhLqYPaV;*_OH0!}ndou378v#bbM<0oETe zR9}@{mQEg&3ZI^*oytxmEZlt*9faS;jm?(-TYl+iMA$KS z-d1TWTU@DJ)8e)a{4Z+aSmk@k==W1o?-fQm{ZFCFN2q|RNM$)=&6QLuS^YYM9bak= z;M$wbO0TtEr<2pWx53X{jDGBMyKul@FWp8~+W?Z!1y8fvjdizv-sRb>up9b+gz@#S z!UwBaye$8+>g%L-=2_^qOZtP?w-B$Dl?RKmy$KxFeVsa+h@}~S*0ilV^5+8HRX$#4 zWb{Xj=P%yaStV6d6FIzBo1w+B0)~pSt7EF&J1MpO!`<7Gd-<0(o9_B;nIkv)-8dmy zUj3n&MxUu-qy;T**L4flQ3sL>{Eu0VjBT{amYHArFC9DEZI)0zKHS*K`%zuWi|E-H zdy>7cq$}o^>G$<1Bdno6D9@eLABgk(HN~QGtK_)To|20NQA6$LWX$*UxN=46PQPQ0 zyB3}eDy`^enC~pQoJ$@Ex7=(g$2M~%zQI#}cu=hI4o&=8RYY9UT9WbPW_D?9=TTzl@dMUJ1U-4boEd*^TS7ftz9!@QhvQKjE4%E! zY1lqn_^b7P|9?TwU#g+_s*&VFo~P>X-HAF}w1Y`IH4|{*en42kmr^V?`>u6zqlh}( z-`|I991L~Lq);D#h zxl~iyqG=h>3|Ouv`qy7&@Oma%Ta_whl=5MzNcH?WF~aX9_T}CEmMEIYY4sCee7=7( z@UMkYE;WF{g&+chFI{#)FMn!I4bPd*xfU(3tUph?^q0%cMJ^b~KuM;0+Ll@_o={qH zd}aB5J`uFqYxy^)A}0Dvy!^RdRhpk8_dQSLQr1u*G7|z@Tdhw{#I^I`K74t)ZR%s| zoCeju$~Rw{gTeqp>x5@<`U%N;^=|8LHyt{g_Sbrqs-@-qRRN5gIkpSou=TPAl|%KV zq9l~TOV+-les1GLL?szDRe{qih^@oH*GXab~lweqxy992YUL86LN^xHQu z#ZC2>(C*DJZ$G&I`VFU|F?JYBT&NG? z#s34iSXHX|wKWKfcl$X9fSFr>?axR}uwGoq@*QO_ycxPbs6itjrEKY$`WlI^vF>2Y zc9GQQ;I42S19RlMIAU}o?8>>NZs^$~W9_uo$dJEI<*y;92sD8W*Ks0!FvI+H$UuxS z{Ft5~6ekh}vNV3Q5a7iJZiYEHN<`;4p5AbFT#_|@ef3pG?DWA6msrl14(Vw+T=5ft z)>YDgwVjy(2<~?nV6DVcxeFN!|6{ruRM5 z&@eb2ZP?XaSLoNn9TFtSl&PnLPa$$OujX8{3^{^Mb{M|CKvgB(ym-cSnd^Aq?J7~5 zB%$XtK(RiAIF4fx-sJ(RHqYxhvv6G5ZaTVa5!J9;!=~9QqdW7r6s`a%@AdXWFl-D zctyJ}eSiAlmr{3_I@s42b*QSNjg1yXDk61%wgN2~^PV>&%<gKS44 z?g#~`kc@nQVV+vNwFoB1JENB_UN8pYct95wSXSoM>a_z2~AetEbv(lC8>equ+!64L0^OHu> zwg9{+76O2csnWEnPU7^mh9toNBsHPO>#CM3@xFyFCNI8Z{L|IzvWyp#56xP_YQdN~ z06ZQ5VDhmCg5)^cVUl@Nn@IwQ5Q7aciJ9J>JSTlQ5c#nR%zO7T5O^2UFzeM*$sV1h zsFLRzm$fz~Q-K{!X6}`Vvji&f@_m3LbuiI~1-~doc?^hK8s_ekkOB&$6q)0>1>%qa z434inE(IFGxJ2km8h0tdGBF={o(JfB7Ac01%;1u8Ealu~11^IG)~vq*CTnEDlUZI4 zwBvzC{|VXDfFqR&bl98jb!clW!;H1o?N4I(gN4BiY`8tL*$oS9T-JT5OOxp+t+K8Cx!~EsKz;$2Y}v9S9HK!! zh0A~zz!b5iLHn$>cA4%2keBdQ;flpyPvM9A0_dblcPfq%!Ivgld?t4uCMw%2=vbv+ zhz>*rf9;e>ceZ;?c9?!k?f&Q$p&j3bN9QGvk8fov zD{s5Knj(lpN7R%wH#auE_4L^@6iW~tB^%yKkNj@7dlteI{>Dy}WDjNEN>W?b?wNex z4hqoJs4w>S4>&|B6b?0d6@Phf_;pCQ1M{9DMW#gvf}$y@$=ZtbdEx#5OcFHb~Bd4UJvJ!p?oWZL)^_&MOEb z!(#9@gtlP@gpD=~bRA9X({lr8qa)j4>DbHch`W?sljQ*kv~X-Il<-EU0xiSi0nlS% z`&dB7F_ZT6TAyBdKYK?YlV)dwtR90niz~5XQ^ODl5v%#7-^CrxBY16611eY))Q}S7}v@&M8?P^QbL9J;J4o zWI5W>E$tR(6tOK1p`A1s6h5g;jwIg{%`vHL3{|3;kCu9X&&O01=8d*C%m954%kI(Z z7zGU7hV8)4z)Bb1!Rd^}7{D?VMqg0m!LW4Oq*MCCXFq!DKc`cBWj%a$E?u=Yo>;KB zX8{+Ft`ar+;!wI-iFJQDAGm+t_^jt-VtotbR<}$PEXx`!2Gkp7NO7Y*=}9$#7vRzP zQE(*96lh2a`E(TDv^@=6`tFx5hiyQ~al`AvRJ+ zNZ*AHqRITp1!v%r1z9qeL&cFn1czW5L$1VgO%20mTbUyH$fJ+EJ;jCQYevJ;Vfi5b zBsuy9Y~`55Mk@(f4%yo~H4Q=)EsJ8MWs41Bj(C`Q_M+fbsx(}IwIyh>f|b#OodexO z0(z(cmEZ*Xg}v>)q5)b5v%%~;HZp^OUzmcA9-$BCkgpCUa74olMz0g2ZdiI{j&qPK z!v|#|Mouqk`9Hlt9xlP>$do*Qcc72zm4gf;ny~h6$=N~dK)Js&qmLnTB02KQg(zvJ z9tkIFGUEF7$<%xc$s(iuUcrYClN)-kQae_FoHGI&KKk7F>9VMN|bwg(GT!ofPEia~X%N_4X#SrlvbW#7o-0vH5y z5M-7Xkt4yeK1noFo>QK$E>>5*8@&Fs6T4K3AJtcAOnOr$S-KJw{})#p%o z1T~IK<@mhd7%#6Nt5WWU&K%K^=Eyjrf*@=)c$j!5k7SP&^%i~-1UZ2t;m~cq#yA;D zsw8(nSq^)^6z&t{)6W?qqX`;hqM{1xoh>JG0TAf_t+TZrs$vu}b2yEWA9&=b zEcS)N3tZ8lcR^S#Lv3GfxCW?I~xt<2ZJMucRfMXl)3<>YQ%nm8X^ zQ{Ux?u_4z>HuiFT(^ChnEq$N7^UE9Z8+}{LJ{vZT{&-^5bwbL6m{7>=;A|lu)?lgQ!!x3xH8^Z-BJ}$70Ed@w;mDGc{Ed%!WOMc-t?}}LC-eU z=_=o(U_^p`TDOph$Y#QdA&z4?j(a_Qyf!{*UF2S5)fMdOASd&^F=|oOs8WIm)-sen zpgyw2fFxiQRUu4Gs6VROqy=F>fc2JTg+WW1VAU)$V>*7R$7R|-Sw82k!P|U=|;Hd)@M!;wuHlJtz3O zK3vYu&jum2G*v9HY`er4SY9Z%uLz8k<}M6mm25C`Z2B3A`T2DBB6Q(%1)S@S|8HdX znhJkofkX%2%+wh+eNZpJ?Y9O4Pv7Ei>znmSw@g|Zj9nL~1STKN5g*}9{<(s2dH>Iy zAnsE+Knc7C?QHB74|t1Ojd5<}Y&_E&rQmzO>O$hlEEDR|I6vO{DB4A~p#vL#ySaryNKm-s1(A&?0 z)e=((BOLE%+xi<&Ti>8{ODTsnvD`rw$MaKSy+ex_)Ej7^|Ms>>@qeO}i(~c8LI5ee zFP2KhB0%?+#r6K3q*!(of~`8j2K6A*my19oA`l?~t(sHr|LpgYE&53wV8|$t|@1wSVh9t(U6t zPc79weR8^MUW6V{-o8#O%OcLa&30!1=6%L__xC@{2H!pTN7^o?Z657m-Y06=V#2L= zbo@u8?#ZX0$6VdZpuU3qLS|)u2EzWpA)5K}CbIVPk;mPU$hEs;0OK^UIlDr@tPos3N#wn&?ZZOr+CxKzb!ByO;gk z$nNBKTBaV)C3Hp1CDF34QzL3h9HtdLXKH$i^K;*GB-u<*Cbx7mk>uGZ{eL*q5UEaT zkq;;UFpn*(aj$E4voW-6cmj#TF2!``+@>O%y{Je$U5lwX#^qChDui)V9B0nr&Bdmk zOmis4z)+3x=TLU9j(L{Hik368qS=d5TfYudyqsR7nR;9|{oMDc#!dnN{+fGn-IWrJ z;jh!Lvr>l3EHV@2JFi&)00DGSwS(~t7z_Gx0dzfl18pU*h_B< z^dy2?_tj+*%R+pMu!K-zg@r|*eZK#J8&LU2PMtVLPr z5Jdic=Pz9N{IdhQlBKEC+O=a?c1#g1xpl|(U2`h@+e1fw!;@IFBsJPG%mj`r>`rud z7doBXt5+XC;-vtw%Qh1f0RM_tzmAI5)Rw7Dt&BrWEiKb0)%yM2nC|M1cO{n0?$`b5 zYHR!tMUfwEbsN{O-_V(0*sNbCco*l)L<)UQx||P%Q5qB?4j)kz#Em@Rwx`lxTZ>j+ zotN3>cMBT*PyXdqSh?85jPG5l>&>S$1vgCQusGo3N^>j@1$J8>`0&QUHYf?O53P@Pv8mImgK68 zRk|cSv?6M(7^Q2HzSr_Ika_+=p}zl}F^j*yoyb{8mDtTQB#7hD5N}6xuARzG4WYE4 z6*Q=R6Y`wg6VFayKM1^i2_^AF(A`B2Wue)Yt6YV50!PWHRl-NrLvHzz?k(?4h;D;r z{CwOJ@0cwq;+K;aHL&V^swHKPx1WtX%LoqGw=mTc9b+UosbRfy zL=@50hZ_$y-s4K>n?fl(rx|MXysd;_0Fi5SS(4f=iJ?>jvAmk<859MOyAt4pyKyOt zXD~h;TcUf{vqsDv5Ksy>f9>H8@jJ;RXFCX@i@8@eq!^kb1_pVXQ1@ec^rH zcIXv{S4i@e?jPSOO6O!}9SL$l#5y1Cn3lKAPfs#1v^@Hi@%le9AD}Q8frlHt8|=J; z(y9Y+7)21JY)cFBzBusvg!0tDi?5mqD<97gJH!;E{Gp)LFY+&o?b#@6;0gSN#Ji$%}7+d@p zkDe{4+&q-@UwQ@I7&1MDu}AG;8jMQ14qx4_G8uDBt|0+-e|(c(#tIJ!<%nMQL1}KpSGVYkj;;pz1%sW_5>^bkg2F{zkz47r0d5XL2g+xt&AFW8#S0&m+R z2us2qoO=L(=;n@hi}R;Ex5Q!Km9q7ZU?;Pv7vvw~6UpY(@x*I6ZlBf3hLAYl8^!>= zBaN2j#PalV``ipPCp!bMr)gA$|Q1lUOXI4phg@NTjL@tboEf5SWVTzkvbaDbwb`XJ35K>SvP-zHj@>ddT1=CQ=sK?BX^U5cHIO<(_ibqm@GaOe zDMTOx6u<<}TVaGmq>w~pkO^C?(z&5gcLS+T;;kiL@mqRQeS&lo(uQHLq2Q)bADkRx zWK>)9kr7TZfB_2MKp;RZAhx}>3;Sq1f&Y|wvrg|B@BmOZuZ{!IbUOGd)!BEKqQ)+I z=Mo-`Y?OZ#r`6Hl{>N%`_x?06GlibFuEiQ~lNbaYHf=Rq7+sFqnxkbU?j))2N@1L* z){hwg2@VI;r+TKBxamR)liIG6RH_mzxH@Q?+TOBzV}Xbb0|+>d2>wN4Um#c#_CSOX z=y?V^of|ov%(RF>APxkvbXy3nOh1UL31lsH8;O+F2s9A|5t$0otj2^9UV#aQ=E`VC z3$Hu2g%rB!ysINS)WXy>i55KX<=w)>Yl^l<7d?R@YNCVDP;oj?*?5u@1t@lV4j4BH z&@ERaQi(cTkfjtmH>D`WWFSvl8>oS4MTkpexo-pr~qz;sm6D((&Yu1#>)++`V>#8o+Y|I3bQ^Iqk?L;bhw8LcR|1Q_brM z$po8-o=5L=htge)!oW)oA6E}1t@DN>SP=|Slh0IAUzPVK%1!hfmJOjt&+pxh4yYF# z24k4n;yB?-UmL5+XG+xMbsp48(o%7}Yd=ZoypWXA7MvOE`UV8AB-opMK{i#aTnP;D zm;4k#5ER(kZw6PwX#I`?Uy_nA0>^UX3nX~}Z)mVlZoKK20dNs=iFQkcY`~Jv0{;`S zb|!}}Bk_;%Q4u5(s&N8^?s;JnNg&240V0cExS8hegh1wVypaS6uK)pH5R;U~CZ1RM zI?+AHf~xwGSXDMD$*bMeY#LWN7FSbkVn2?8LVzoY?&rJGQtY9}n42EH5-*-rcmYAg z2wJTih^UA6dNU{NYdvC~JHhIJl@{~?=Uv&w-2Snt{T*g1>@>Xb)WvO*22^QAywTmp z>UJ;p63#pH2~>(Y{#atShdl3o!`yFb9&b*ub)5$gu>Q6Pvg~02m{Xb2>2@AbpBv!% z2msp)1T)pF5|sODw>JosLY9>QYM8ZIsPMP1Wlng9iD+bYIA0cEh$KbzNhZOYNbo5_~(9RF|{+6-s=sY^@uCEFq$ENvrhTk?~%r8wgLbMtCs_8J%wQJUYx_ zAw(9?6gb*l(PEo^O$01U5%gFo07A%G6%+{4SAaK3yE_=i8>D0{%??LzE5QuVDG;Px zazIH~hH(=YP?4h+K#oGY)6guBm(=xtlhX{sWQNGI6wJipRyW@e*fgH22NOt;Sz@%( z7(}RO4GlyhQHT(QZMSI-muSwBDK8#48$pzy0kR!>3)4BS%f7gHHJL5sHeoObB^v+t ze^hzogyx)Yia^8{skAjk5J3+U;{f-x+MK8tUKOrttX;csp&(4ukSpub6~SRAQX;=o zIQ9#d?jVjt?ah+MtL>J?1&1LGrI9V#qPTcGdv{NvWF4>aB@!EDg!~HtT$|`Ex zQ_V1n>t>vCnAt9;LyXEr^$N4_GAEal!J4cQ8j2z^#DcgnMUws1iul)RTJmm@LKwF` zBAH(7tXxnoH--w6rfRaBt=tJ~X=CM2TGXs}?5Ch8zbTnzYYUFXXL!H|=u z0@kh55$;n79=rr>+TBA3dw1i45_ukph}j3$`Tj-$rL3O)YlI3dnTwR{!p8aNwOo`sXZzcq}kI?lCoRRoX3DNJ{Vv zzc})SlUvr@?|6=N{pFo3meHXtiTcc@DT^F5q~WX5QUW^@!gUr)u)vTYdxju5!xBjZ zL9vIlKoAs|ei7+`$$wNbX(9X~CD;^lD-9ns_$WuTdV7n8H|9qxZd6ssuc>V|b%yvl zr;uC7*|u1e@mXk8hnAt-pz-^E&4ZR4X;_w@);~CI!xr)NYSH3mf5gY=o76^}DxNCE zHS8qg)6>P%r8us>uK%I+T9WAJB?DhPzQ>ru4t&1*t|w67{! zebC))@a9dd1#m#-Z%Vq0mdXvnU4oAgvErEXJ3w^+TsD{+_d0mz*Q9?Sh0iF0y2|(jvw#oceVchio&}72xUUp%hTi&$9wyLlXn+@ zrkFw0Z6l@iAi00gZYycGvq_^(Q>A`Z8Zi;|@GGubTrUk#1lA}5y{cpp&*~bj4tCh3{>CaL zyVz74qvV){l!W!p-MBFtZ6M6q_pZ3ooRLg!%Io~z-0*VtZdx(rt*4;ExzkCp-YC4K zaw;?bv$a$oS$vJFxrj1(x}d}I$NY#tMQyKe=%gqb)oH&5s3pu8UV<(Nt9`0h%swv3 z9m~zF`Qvn1Us%&}VRFF*Da8fv1WL)eO0l_Oo08%;$yOh{ULj0hzEf$R_PLZIrQ>qQ z(R0OD7p1ftPC6`l<8<)y141Pi4T3B{4YwCRWSVJBds0UXW9zO*1~`Tx<>4(oPg0>` zlw1#omxVm6E0L1wkm2g=7Ipz+%JP~B%xO+2+KkL1O&BpZ#v5RsOaS%JLYKziHBB}K zx2eNu!2pmEOioFD4$r$HSAb=UdV_-GE&%Bihqeg<4=r+$G=pbNmHM;haIm67W-Ql< zC9%*np1RE+$fdFiJ0g*Lo0tP-5?@am6Uc2T%(HL$?G}rHKx#H>=*o2{%K}#hDrSwq z@Sa2iuB#&XWWb%qYDo}FBO!x+HBLrNzFFv6zZ4O8AWq9BtE^3@-aw755=g71F+`U= z9410_Y%1ml2q8uzmIwkglxT=y3|x6!7W)U>Ga#jDP^xfty)ZR4rW2~hi#`$>Ww~NB za+y)=l$1i&Y&LIR*b-F5MU5e0udw%D|lYW)B~`{`=B_l zmEFB~FDo72$~s_~*>Yl^VV^LNCLRi(M1aJ`ZswedZ%>6GK`5Df4Dy76Vjs{t)~2ka z87aQ}vX#yD)H}<#;^SI>CJOXEXH@J6O;De(KL3m}J-t~e+1c!gmE5n;wIp&`>X;6a z(+2E%r++eVDJB9I(Kj@&Z`+581ZCPQ>EcUEt*gqR;yt5bC0XSvctKF}CFwZNB5I5@ z_B4>PIxDaNM(V(eYafebX5!auX;8`KK(RAJx2*0CnS_@(4R3yQHif0xlFgnIC2IEg zq+vFYZXZ0Ry_(qOO-Po;37T+RanE(z?7&ubtjat4TRm7Y6m0T&n_wN5XhiC;KkO~n z&EjkWmgMMJ+ZRn0q?=8cFjs*WQSsAZpt0BaI#a`O9vLMDZfawEO$5=%Hb>D4H9;BO zyAULMkx-Y>lWrWLAjbh+Cl*{NpTUVlVK99mES}XjV%?qYJ$&D$Fm_5i_?beemzC{CUrY~qyAk!HdU(=#Ron6`pOU#y)_3|FX|XlA<` zn~Z}Q$w8z6>So9v?GsK;`!)|Njai{&PLYo`Y%rPeZAlNMXgMG(tO>%Z;ebh4kX#_< zy2&MW9Q(ZKaQB83%3*Y?R+e2}fug!a&bZ#+R0YTqEQvR7JzH&4i?M3O_i;xPXz-j~ zLiV1uz9+A45B&+LZ#Q$*(0B?g&sy~cMv2_9137ct%BwW5(F4|lDt7I3V`??0bmcJR zs=#u@8~zc?>6s((&e2%6ea!pbCDQVecPq9#0*Fa0=yG>Bo1%iitcV|ypHv)areh%m zYVZ9C{ipf)NrTB>D?hoH@;+I3{&UZF7F=8X&2jtM`QdiT1~+R*O{Kkd9$x4;wJ2aw zV;dwDs?0)fWQJfx6mM#fw??pX%u7|rr;j$Gv88jNhXlTMZ|4?rzzp#+6wb@oPT(wZsV~r?G zo)Yv_t27Jips7K|W}#dL;6jW_yv~acgmFTh6Hi-9j=f6y6CaMj*^oeK9?Rp7#x$6X z5ji482kmsbrhi&QN&HcIeR1A5Ri*p6tY40*4Rxp+TQ8 z+n~o!_QvZO4(OBl&V7U}inJ#v4GMG*fS9t+j*AM=J&*(!895SSw<|Kx-vp+CN}2en z=Fpr(M>Oh8D+8&Dwi$R7lI}lKjW(A<;7!WDQd)uZ84P1uzHR?o51#7e5UGmh6Q< zobl~DvU;N9wGbd7**@8mk98dcL6pzuEBLn_4cgiBZ~hUcR6yh1TrMxQteblQfJ+WQ z{G}LA!`a&|_AiTnZz)XUDQSGLV_OmkOF)S#+kT$Y3Fv~JW)S?x9%j+cyR%bQ6eKS{ z$;9%x7a$%4v~2}I00_%~8RLUSG_;Zb2;0W-2P3BSe-r?oc*vV-O?4b{H0&nECjt~9 zgu21txX00uR@ap3*oR0hGB{R3k(osd*b+D=KMlF1pK~pp*Km=++X$Bs42W`4fm35C zHk@|~4!P|BNi5u#_HrFWi{;zt#5`T`#D{C4m9d!Eei@)h^GrDc`<<34PK3rw#++B5 ztz!e1SgRn`KDU%*d(r@VRPJySz*3$ZnMw5!x}N{`%55C}>B|={UcTIOHGW%DL#PME z4V(ku>_XDhp&@T;Twh$>xeR##xcA#RaAyn%Et9u}WLLCTE}O=E!Jel~$uAT(Fw{%9 zmx2deHpZREQpZY?M^);+JQ3s!oy~sp#nMfanrqH8=jNp5 zC7Ky|&Y%+C1?9QyA{W&%-cQsk!7b&Hhs0A|G|-DKZ#ChHm4yX5dW#1y{o*cnG9UG= zB-f(<_fy6?j7i^Hl9hf)|I0?x)@hYC$T00>{Ek&8jPnVg7mHWJ$Dblub?g1v=GG(0 zV9)~324P<@E%2!*{k^ll_lZGy!DXDJpRAndov5QwkQPn7E?%j78Crpz<06dVO*Vpl%m21Zfq(dr)Y^Pg_!T4*xTTgSjz|N{v#&?H z3}r?Sp#%h+42IBsHYO}xx~_pi5!JX~38f{JGSx_$O9O0qgTHn2$cK{2@Pvv`ct+fE z%YtFiNSL;cw)1s4<=JMqzYDB%@oGn2P6k6TPEH1_MOY|g59nyBW^#PF)=x^^8l;ebg5&~M0}?#9GcOuq$Yo}`g4you`IgdV8B|hl4^==qR@ksv^v}@ zUs2du?-m}Uv=-HH>Z{$wP0SeDgr0UuzU9;VBB_8;!HOExAZWcUeZXfhTSI0i%{Jpqjfp%+>xkeUCv*PD2{u)2EdR=(lm z8p%{DU-#|5xbO1#dd$UW^t*D+8|-j%uc>=c=hH;K7t#1)J(kAJoA=WBr}Js6BuRy* z3V?s--vafZvHPYK?rg8-?)aw@pY_=Z!4Wf6Cch1UZ?D)9a3V$yc|3{Uvo)wg?Q8S) z|9NR`?IrhN|LQNg^e0aA(0}eZk0?%dvMkU-8jXMb*D*X#o!!U%P%6cjHPwb>rQ!_Pi)Py7e~7W0Jx`;1j4X2aoeS37Eit%;6VkKeXd z^U;^k%PL%&lUy=z?NA9-Y% zyK6f2-vMp{3Y^bT=scOZtG{16>!b>k!ooVwP|rH!JJV>aj`1;|5GI9zoc^^l&C2f? zkSV^krMpef+E1PS@`c`7Ahn`TOx(u+1`ekq6{z)|e&yn+Cp@EO>03XdyqhP_eEEE* zhX$B-B)mdXZ=DV!eiV@9be?+U(#aIFe&}$VJn+b&17{DV>KsFK?Vt&R4f>;|;p9ov z`A41ypx_)b(Z18Mx_b*A`|OVDBTYkNt`b<0rHmU~t04Q*t-afOFa6gJ0Y;l`m@KzT zhYpuo6>@llY?qsd4>c<-a%6TnsE@sHp=Y5{9JL$8R=FAs#Dnd28y-A5tV|z}jt>qV zmky+r!$$|IBy&kH;LC)qBh4(@^>bYpADivkfkiS~ zZj*inUp5GrnDMn^zk6S2(VBJU&@1OB-4PBeXTOxqxD+FY&7dr`m=QD@&FbVy@xm+S zkXdKe-q-zZGdqm5D$PTOo8>k#Ji=C5rNf6x?J_$82%dfAZPm(y2P>+#->_F#Gnuue zv53&$`^%@Ix>`MX^A>#b7Mn@WFsmJVWUB7%d$|6$7bZNYdthE;2i_mfTMI(Z>C-|_ zVcyzoYU~5^Zgj$P;a3l@_<9J9`Ro(FGdRd+7RNGIR@3(C8*i_u9z0O3ybat!yscQd ze}6^s_S-9p`}Y+qZ;vJa>-7)$XpH~h^{*Qdjh_1Jh(sH{{<;zy7;tyve!<`0KUsKp zx6eUh(8mut`tEz#O^yB3VV2|2WXiWw-^^rl&6d>J$-1GmWvb3j)!my0Gb?pUt!6Hp z*{tvQlS!20p*Me~wdf+xIDT>bu?Y`ZoN}EyYjK`~)KKSl=fC&zz3Di&>Lcv^BfaM>3X7to zF9Ugb&B3+7WL+ZDl9V=-NFC=Ac!u3k;la6XTT^4z$Y<(vHJ^6A@7zTn5`j^;F}oax zk>T@LQ0r_2nd!AP_YE@l>dVu2C!IiW!JO>9drPVO0%O;wuU)tQ{dL=|kcC=i1jR0q{SqrY#M@se^?@#G3QchU@!@5(JIn(G-zTn}!dyaH}kOeN;%o&B@~U zY;{{>=5Bpb@?ofdiuK`?&u5x*G%LhV7y@#165Xr@gnh4VBAdaZ85C0H`Kgt%j*I&C zA?R}?0ogZ+HKsBn)wgb66^TxGBB4~QCg{#(FD-&wlo z>>C7!$fODP3^!{;fVu`Y~KS(KZpYw0E_{>$X0>X%!^Kc7yNge64oZS!BjzUTD=a7)YOP-ugBO zP9*cbtA5P4UI$2@zX2xh###Gffj;5sy2GA5bKUmzBA8vF+>{&ncw&otNIFS-Xx#<6 z6duz{FT2gpvY;F!?FOFQK%r_F%s-sV5LY{FrFCm2sK44}wW?OF86ddh=8p{h;A)Qq zyl9&h2r@jNf!M6=JL!oDv~p&xVEyN}^TS5bwUO95N<^&*HpIXGMgoF%RJe4B0Fd=W zTDs}q-`my$T`|qOooZ_at(k~O7{Rf0 z|IYPyKFOC#)mt6~q&+`r_8uIZyiPQIEOK0YqIHgvb8~BY>r5-gT8~PXEuO07Gy6Y3T+he=Wi-Ns258b+0b0uX#;COEL1WHBn7+nV<>nk@3u>heF6lI}P+)teJb|Xz#6!ey_1*dOf=_jbujzpkG}?GSna*HcNM^LMfEWpO(S9G&oad` zT6tRbd4IX)$E?&F!ielR?ilX6IZ@ zpL~Nhd01`khX79r2SEbPqL9U0j$u^FX#p-PIN7 zIu4lT0~Jxs@%R)BJuGMk%rLC%tg*FZ zFpaG@9~SN)5M6)BlA zX--LTMM`!BbKSy%GLo`I!f*t_TqsIQHzgVOP{Qki!g3fZIV^^V;gyD)d~^9NuqZM5 zm~}EtQ($&J2%wXxH>>QOO*ia}ifsyZR+Od5TDO-qD@qDfwMuoY6fT!5gi-PNlA`ho zQS@@HGZOX>D#Q6BVCP5f>tN<3q+}hj4gk&w*cVq8>W|F5nU?@qmw#j(@q!alBM=7N z6d>s+Lw-183=jw0t&wAYlYcG-gn(Je;{1$B!bJqmV}?ckC&6?eCkzZfa4R5SpH^RWep` z1pDi&JUOohFttF@`fg4sl!oAlvIJPTh44<1)zn!c#DaB45Ho_MKnTeF)6R9IeE;6f zxoO&>A`Ao($cLnxzATu{6JsZi0Z0KNh5q8eHmh;y%drg$5wb7yjXf9VI#KDyv&ch? zw~-NlQUig*@gzwJ4$JNA9;{Wy5t0rZ`Gc3&#AT757tjj$=#r8Qi3y^}5D<*xKp2L| z5h-NMtqt=NhK6=S7D(nUUnDS-Lz3hpgJ@`}-jbhhh*M5eEjwrDpl~(_|uu0jV#Q0iSQ6 z{r%MoNekAQ?#~_u@nVx%A_|sb#xsz;$T2X{PK*85b{kIUN2?p+Q zOJ-JK8aJzbUB)2}Z!eE?D8+n6eTKK8oUeXDChne3Sw%T9$%IKlYf@BWo;g_T`u8fK zR{NoNYxatwB`a4Ik;@SlCNd+2`>{Vx3C<~Dad`^2W!M1L8(&Z`UAYo4nL;wK6($IS zfU&3u8ZwDw$ODK0VF+dpJ<=tJOoVd*0U5#dA{io6C`P~l41*s0pjtyKqxYZ)bGIt8 z6Q$1Dg2?cp6y#6A$yjlbIoN(30Q`n=VE+ODF$Yq#nn4nTgApI%Pv5PFrB*~5>5UCz zK#&geBp42fAsjmf5e&U{`j@XOCT=1Z{7^?&Y$||G$nKt^SO_f=9mg@qWNrXK6*3DQ zNdf@kNfY$zgKlt04;i_$-u}zq2w@PN=r*yqahMuXr?Vs*RR2&NWS zjT`D5Fu-AU50JX3`cu1>&-cP50I0UjC!C)Dqu<^id}nay{?8)%>v|xA_CEk#(nbo$ zZ{3PSGMS!ftZd>C_LuJv`3DKay<%c?1!zx-wZJ@DcrQTKljwA)NNU89Zu`q$F0 zhwx_e@BXgU1b{_5Z~H*MwV#(c{(2g!84be7ClnWO5g9aa=930db->0G6+X0ZgBAX-*?m0 z@UxAOq{I6^|1(BzZc@~*es$zXh#9|4oj#pD_1I%`=b+N5B}4h>5!-a49!40ZzW2r( zfAv?1c&i0K=eNt3ha0Dc=cAdxjGT9-viCa3gP|Y%;9ve_dwX_Pt@=Ro6N$2vAS9FA z!b0V$=9}OA`Oj@CR(1dW`SbO{!Gq?E`bR(7-P35|aXrAJ`+;QYYu(j6ncS)!Ib+kp z1>JJZy&0#R8V24=#j0>uS6)ja${4N{Po4^}31$Jd2ru~&`@)g~kB3hjE1|hX;0GN(%;oTKR?z#N`Pk4usa%L&jK{Yi<$b8L zEY@j-?ca_t0OsY-pH*iw@vw0gv}hY?W4h9oR5jxNeeJo9JJQd>aDJ;09zL$CgpW%3 z_s)OqJa+E<`RT<{Djq#~Ubihkwy^GW-S?f@U4XOjS$%R<@~dkL&$Pg&_d)ev>zsck z_^d9u&R7c@YLcH_JN@k2*s@3AHGpC7t0UWnH=E>d>?6UkzgvA9Q|t419BO+PdXiiY z0yUSPZYe}3#gA00aK*kg|!HESe)w7L~UdYEi|Z(j;w0fMFX;UZ0z{O$A+4irrn z4(tgSA34AguwFUnXPSY1fgB#hl^B~LaJ*ckGn~QIRdvu?Eo~>#iUJN^*^4gf+)jP0a=O=qqmqJVpJX=!cuOyY zjve=#44a}cTPa64UzTM$Sn{P3ECoWi=ZqH5 zywik|vL@x#IeXkmnH>wl*6BMF*LO!(lOc*C9l;saut2UDJ@zYX#3~cYI>XT`MdvjZ zS=I7rRi8*2&F(oAy`uQ~p2D;Q#OrNmUgww7sFvC`=%Q}JPMvHfgZf~gp7i49)Vv_? z6BM(L#N3r^rZJMA7X1Ecp*Fl1$yVI4wAc%btaB8xFAKc-9PUll13`T-*(B>b26t3v z*rv2-nqPiBW0|yn>RDo_MBmc-l2`8}h~~oNBLDg5E{;6e> z!LeE6qUhj=WhCwcy_^>p;YMJuQx^?*x7{L{&j@@fmTOdat*=cZzD;kt#*xsuk-#nq z6Wy_vo*jyW@(m(gDpq%4xO<=Lqa~@HcAo#npy~q8B15Rlylso@J9G$suIGl;>=nW zj!j#pE#ax?%4eOBn1!|~WFFC7nK&QzjU75D2^MfO^2GA|(@!tYJpmxV_b?|X^9;o`PuRn3|BDq7zFxZdTvX57oI}QgU2J%Sa>#Lt>!?c)fJp+q` zVX>5bIE0fKe7_&SYsWvS(X_oQG`Y1C&Td;lz9zWoa9Y@GL$uzn(VkGT1QHq~S$Wf7 z2sF0BA;UlZR3{gLyf0+T4XJ~%M7w`*TN_V%^;?qA_oN8MaestXLfiYrT8k(Q4HKm7 z*_~MEvx$n7%6$L;fL8*&hC{`;7uJ>W5)DBU$@Lc zld5-BY1Kzv0+yMA%}iOOnr8U7eRY?$s#qyTYS8)fVsg`GKna1AawUHnf(|p@mR|pI zf4B|7X@5D}o0j~E;X*Q?4?}9tzcV_!#~qN3fB9E_zfps;83?A7nIO-XHKC&;`c7pt zWB$ePp~Q|yj{B5s%|}2H)~iOC#BL4gKmV71q|LgG;i!;;pt2~+FdXjeeoPf*BI3~z zP4{mVjLwhHawadwD-nuD!yF|-L{KzzYuJ2Al(rA6ek^R3a-cPr-}Bd8U{Dr~hpH`_Dcs4r^U_m*mtW}zhx9@+63mhxgPL?1k;caK>U+DP7W>>wSc z9n+`#BWf?|n(ny6OeXALk(mI~?8G*EIPI<8W-~sGW-~{iohJueo=RtWU~SKbPE}fQ z?7FK>w$i?*2Fc!d83gZijG8Jl=iZE?j_5o%n=}5VraPImw>cnVwDNjQdFx| zaEl+rL*WBobYFSYPmL?ATG3j7>8ui)2fL-_Fj0{M-iiR5EM9`B;~$Gkx(Z@rWK4J9 zTI*VSPEg~r?8}U)VCD28m$Ocj31V*B*4$_w$&2H#ANR~cf7V%ZNC|i5Lqlvq#$s(C zj}wf(KqdG}0jh01;E$ZX1TPRu1N3B7c57=kgI?@%*M(jf9nf-sNB3;4p_q}A15kVY zjs7&pPxIHfye(XWxzqK`cIj>vJv3Cl%KwhE0tkdafv4x0znQ$|^Ex2G6d3piHofRWvo@nkY9^#Kv zQZ29+k6!ZFBBQGyDJyDca3F`{wpBEu4s>$H=vPGT_?#SOa{y7lyy5!;6csP|k}67n z1zcVIxh5v*&mtt7(`sweY`*zC!?R+X?})F{$K$9Qzsu106*YkA^AU*5#?;#Sx%H`O zj_;_iH$rOOMgn+6wjMj5o!-CSppVCX9UCZT>&{wTL230r4b!RtNHAOCX2Q(z3wY zKhb`&`r(Q>er@vj(Z4-DXzr?vV+^`B%U>Bw_OSzkJ9>5Q_9WjY3`9M1>r=P;czAX( z5uMBG+&G}yy}}^juWSPV)CwR#_Z-UqQ1Ka;`oQG*%g1y82$FAp=@(h=dLZfv8T8;s z1?u}!B3xFTeC}Te6MGA6QHr|ByS%WrD6?hvr<`j3O8>j|MpM+ zK1Tk20Ra1nM*jXA0KY-Tj3EkkP8aQF{my_Hm3j~A+5LSEu@1l_%$|AKnzR|CL8~~v zO1WK+UYaxUs*)Q+Xe~h)gS(g+L6>LtLa4N)5xWX!-}*&bl9T+I(|mkEf*jI=xZjCN3R|;C z3+XKp8kl02Bmh((aS+R{45Z?2G2Pn!3@=u0MFW7R&Z~&aij=llX3&}5BaqB3u}Fvw zYRXj-$$=B!^KX1b9O1323S~+Ku0N9V{* zvV_;pnSmh#aa(Ur)VpRQ)ngfeT=)i$+;FY0EN$pq^p)fE6^&I4$xBxm2gX=BUVg>g zAxY!;^|g$x{>C?~)zwUPT^c7WT^vYw6wR%g`=%+IN4TqVTt|eRNx6?b>GAbAj1$XQ zdfEx^!tj(OS>*LH<_ke&q>ShpS96goM$xt6J^o6?2s_3>q=;jr( zbkC;3*>Ody^+vN&s4qGY>XAz6pkA*#+EG?W9h;zN@Q7`U0q^wesVMniZ&^mPTU#B@ zjt{#Yf|e4hkt@*_^YO=URG^B)?n$$%S%m<;Mfr`6+i=XP$}r_CS1C`T3VJ#ss%2F& z6fYp*EDFON4TvDpsI*=6kfNT*o_$?tQDyNZWyIwnU)!eNEwpi;>gmE1i-%ow)YI7Kvf zQ_1hf3%lVGd_>Pjh6$nt6R)Ytil$18Dv^;=n0fyS97Qjlk-JLVNm=a@p2jc>FMiBs)O<2G{j2s2tcXd(^ zmwrZnv^Wyu>CT&A=FlgHJO3~nTBAyfKIbWa_VQS^z#YiE_!$5Ex%DRmj2f#@|0{cU z*Se@^&FdOaKL7|$>R>SD+Fx!yq^rXP&z>8kg5j$r>NNCP^@qeYas@>F&0`mqm$S16 z8-m9@6Pe_1R>uFIe?I;F^Plwg)yOD*-#DOp+QR z1P}+-o>QzJ<5hu|JlG2req!tIS7!j=uA}5fTDPLJXRm7j#*hEQ9AGp3YO+!Dt6@M@ z&_nMeD^%v;J&EkQV6e=Uc>l}fc`IZb+!Q@Gchd@Z2G(JlRzU)$Ic{lv=0nbr!OJ4E zVm3<3jlUxUdwv3NVpMn@vI|;@TfI6vgZ-JOn~5gnc=(TJdg%~W#BuN%5(2T+rz*oY zPel=|R23_hP+OZWN*77;_$E*B6;&eU#5EOhux< z{&i>-nDCX!3Pus0g)`+uhzFGK76H;<8Pn^*!yps4E0guw@QGC?YB#{Nz2& z6%po4?}Z)&?+0g%PApC|c@u;ax6b}=w(qv))(_C4uSzhcXlD5q0@^R%|LYhrHCq*@ zudNg;4_~}%4lpr<3N7xE!Flj~)x2UR;AzbSANXMiIuo-`k0;s56w6FbF7Y2vt~~Y6 z-`Mrw8Vh`F+zLzmhA=TF!AfNhotlnf00=@ewmPP=T^UEslRozfR-0MIAP6qq`UNtl zXr6R|VWmXf?sMrFolARr0AkQmUsby_a0TugzcNt#U}}!Tf_j|~rbzq>snD!my{a0g zv{?_@;fT&YK!gbh`b1wzv)tD(<^ZZB^iGHL;DOZf&O1_v^LI$=3d?WokWK_45hp=7 z(Sf5_n;X<&U(A4PZe|Lc`I^GD4t9O!M)b8K#e~Hdb)#oLSDc8QaD2WBxGpw(f_A5C!R3-c&m4ZB(S3pL7WIlpbKc)q6CRJ$iK^HHaB5I%y;;#8;x3giQ)-l|??#wfX`B{`t(B|C-Ue-1Ea9?q9mJ>bOhKcFc9%v0YnU z*_d*1sYP(~_SdiA4yYS*SG%xls{;eysEv;=_@^h90~2@WY@FL*XFR5Y-Q?g2lZ~II z`2oi=*tICDBt~bS*yc?GADysu9I*|2GOEMkc6gbgT-#1oUTln71SiTn_2W&2du2w& z&r>?P#&fNMnA?>$1M(NMb;YH+L|tj2hJ0)RQEns67O{pq3;K^IfoPpvVAVquiuu@kmfc2F%OmkX-Mro zwa0;<2p$Hy_(Q=bhYg!Q3K`g^TF{R2jtW=vWo8vc zC1!OxL9R|gY&hV5?DfXw-4&^m=GXJ2W=3)$jWcu)L7C2|MkzfCymXyJylP@A>{$B! z-&f4Pmz5QN@CS3h2`0Uq0oZndo2Ai7Ey2M+j0TZxXUAPjtz4*ZJ)#q@hE)4H|!ac~XZxvR4wCsNLTH&41Yo;!&+VIaXMeW3TF z?FXSep}7(Sve@5!Zag_^iKF(diFoqP^**la=8S8c>FxYdnY$g4K195;(XTnb=A2!+ zT{W#h2uyiw?++}Yk!z6{O2=)<=Emq#UoDzbKJU%Z*%!wxYs@pR-@2vp{(#bsJaP0p zOjqc>uRgJ`en-#;m#EC=?Y@;8(cgLPMzm+;yaN2^bII%IvJtk1DKUA?GXdxe?~@!1 zbEJLt+W-!OKoCPHG;598~s?xwtv9WTj|Fabj(>C#w~w#*TAC?jg7H7ys9*&txuNj%ock1i>h}3Bo7P0Zd3pZ;fgmxY=KzlrB{3#uj|Dz%66F zT1bmy>{fl?Cb$Hc5^y=W8Qe_Aa`}3*obH71p%|)E55AlZ%guT|7fa(~uEr08Z@vBp znvXo2q4eN4)+(vyyi%(ow$T`P_l+NF-gnn;&fK{5;imk-#BB)? z?{)cI%98 zBW~S1RjvM}a%;xi@d)n8>rWr#^m!$VC@CV3&3SLLbODhN0)vZ{@YFL0DLJjAl>~=` z7qB~Cnk^6*0!u{QJr#cD5UV#RW#!!f12*rw!_m#GoalsGbNJAl=p2u$a zewyottGE`Q9m`AAzvlByH_>2v)vxgU#eUk51`yys%5%D8&}Lg2?CTJ1aB+|crT_qZ2+lEsZnxd>XyRteVT#_sOw?WKBzYlu7`N+>jV7^RxPq?ZmNy!*+`z67X4J6|A3ATpc#^#RqH*0K znq~+lx2waZIWgs}s0%xSVkm%}El20~%rI&nY9TN%yz(yI?#(;6b8$%2Ew_FS9L^U@ z{&lJLiX=yYwmyV^7CgN*thSV6*Z2`K_}H_PwfpQ4)nDFitj;bqcLX@Y3YRq+jxN?u z?*`7d@77+RKl#E=E6&XY+`hW5ju#&xoH?5r1xkEsJdEu}zveuBLA9t{TP*>mNSbPg zbgDLbdDxSm6FnRmEXL=y)^{&2#&>JDp^b2ir%_g%vKr4-q!$|}#Md!)ZYe z%r|m_)aaQHgLkWoR&M*Ql+yfvxVJrLrmX`^9j|%H4XtR(2yz51SML`}4`kH#gC7j} z_4tmzxiYnb8c}~BAW396jX&{3NZ6R0$HQC(FloqYL{-gY)&KwiR0#vYu)^-``?SA% zZg9A}MN+*8$|4-r-Rp7emY3F0M5Witkdg#6W%*Gfy0bFX^zYz$|IiP9fN8Qa2ySxW zd3<9|2tDxxo(=~90BAJknpa^D2Q33t002z>;*>q-Q-lVO?XqlDj`F5+$LShOz@!(6 zeTjz%SAh|+TpL#62&zSUVanui@JYx?JwD_`(=69!+ER3K5;!-n@ica9IAJBVCLFf& zIwDN8SuTzGh8}m)P?C2zOcdOUYEcAN!tER;G6li~@n4D|UJ@qY8h!j6Z;HxQmfbxz zs0jITQ+6?zLuGg|&dqgC8DxC zcsPk<0-Ol~Iu8K)DQ1kX!n7B^eA$cBaFu7qa=DBafMNq&21y}ZUk;jpau)A*VXzHVS)O>rV$2}9@4#VAmYIgzv0020l ze6kx3Z_mVg+&kvms6MK1nmg+5jxd7r;_7=4m||?|+`>$8OSM|SnXtjE5H=~p!tU~o zFc=1xZ|ugAgwJ&B?4id`o_ze!*<&VO0*U`dEH2EPOR+Ejg5YinW<}V5GX>S^7J!CK zA1NGh;&5HIt{;AUDAn7&G34*={k9eAI8RJRHXt@!SNqxeyEx*YQl_vR^OCwi8#tQYstFRbw_rE65`BF!5^ zHkQeWS*>M#j!`hGTeYZBjB2{e1lrZbBoeMycd{o_AK0vDDrQ_~SmY&nV%rqpt%}=N zRJ)AlycO-jzzhzM>)j{=Mv?k;LK$*PnQIt3GBe0sua9lzdO^?rG=h zl?!;}c#xuVnD;12g|@<@dlI?k+~vodGOM61WakZ@=r}Ob^8&uWGz!=zezT-~2M8?5 zoE)cEkllkC4`%I~P1_>g_ndi>V^A9GYWdWAuklrISGeGX#!9sjVxA(C zVb&%SppDL1U?u}b?a5d&b5@w2PLhk+)VN)3leWj*_oj=W2W_-cp*mL`tnKU(bDW)( zs}tTFr#6!%fU^l=yzCquiNeqsCX#7LBf>}*Vd55I6cu$^`w6oa@cHaZJwkkfDHo86 z%WBx;odzj0%MeO|44D*b5m5r>H6d7n%W)74Td4UBoWa??+_b~KXr23C)PlsM+BXRX zlJm_iiFj{(BU72S#K%0S)Rtsg##+0anQ74TzChQ8#;mo5`#5L}Yty1m4=~hR39;fdtf$H@17_ywAru9lADp8-BmTr)YOHr+h{N zB|a7h*i317AOQOs9=KR(s4!H%G{y8h%xwDUHNCt0g&24-iawk?LwW=BA#VDHN} zL6h@;RlJ5mJtMrW`^kGhu!=jvpH=xk=?0OWKh@RVngHi~Zmex^pzY(lh}VP4)rf*4 z1p*s9BkwV;42Hd0ARTvuh}hc6$3%S$6&@g+D!jNJ5&d?Hx2G<*Ht((*O1DM|zw z8y6nPKTF+hHiwPCMw~oJ^Ax3#NC5$IWFoS?bRP2M2w^_(*>Id9#!@4{N4-ab&33SK zu$-BG4oNMQnBQuiEH4fh<7AHDsb)g}4+rPI5FG`0xdF@Np}13~YijEBa9 z^dhD)8$AiGC#lP^?J2Ig=_UPvqP~TB&;Uwe5Vyy1Zhvyp?ZQOORoA94YC-k;a;sIu zwF$9_&ISYcHR^^T);y37C_4wFyg!VQhZyV_Y9^Vqcf#nfbNc*%4GncO-6AO3;gRrg zf0-oVu*Tfe-h_EWngP{^{c6|1dpgnG1F$rR*{3BSJOAB&YMc z$fP-X8SWmY`JIDL9KZw&>4qOWiukEgxE~064A^V&GU?H3Ygo0m9l_+xt_R-FS?a>n;?8s-^b<;Msy}K=K%h^4~p@oB6)GWDCwz3~& zwhCrwmR9UrnWYofv28?U1dW?k{uZrCRSc z>K84(nkMska42lM5iHP%w6E&*akW}4 zmGYTfw_qmIrYIBkti{kTOy9cy*6n`q_{pd<+}S8?3B*_OYA&4ji#QD)e<00D%^=gQ zrpE`959>}}Fh-<8{lM#DlC+eInStN&xZ7Eg6-1Lp7#WL$+{fiazDnq3{uk1wK`JyT zR@C7@`bB<=kZOMCul|f~h_Z%F3K+&#)Knhf4}$^fLV-Ke`L`piOP>} zSZAlR*5dR7{M9cTAWnoH30c{F#QSwM)|i`}8=W7mjJ*cP7i{owLBb<8-kjCu!*y&_ zh~47_BG%ctg$Sqpu1?U`!}*@^M?iD}qh^!Dq5s23 zogilTrOWfrZHeBPn7lG-Nbl3*i}ya5Um$bc-P@$YX&YbA??uG?p|MxVK>*?%@ zE$np>Sx4{=ZjONY1EMe9ZZwZE<@C6=05wb2fW8p=XV}<=rms z+}v3**4=v_vCLT?C_HK-M^@B--%n_@T6Z`V8oW$$vtSOu3Be!$2Kr$T2H|z$$alI`YXfUTipPF3e!cICD)g&= z1o(0D4}bF8=&!yo0A9VL8^4Xf3Rv+)1W3a}QJgz{ab~4(Ic(_mbZ@-!+Q?sF~ll+*|RyAzT zbo8wCUF%@IP$$8!^rZSCFu8II>k??H!v#S$$9QaV#K5JD)@9ZEU1*_iz02$f>RlYm z87fv|*OiV1gbxRidlwFp5R?>~SLgeC7r3&?dZlZ*%huIt^-&f)9D$U@pu8Gilk;T= z5(m!?B)mkE03QA^57_3PIbif`JM}`;*sqKXh{0td^`|a6M~lt;;@G`~j(I8{r8tFI zKW^SK{QUpE2bKY{ncr@tV)TjQdI_`8HEA1$$bRseJ7~v5QI*c*D(%hU*52{2-13jk zrm$Xhw~TM?7cpT<7x7eemflV~#%M(EGl#Y!v;iW%Uj_gwEdkjbEnje^a0M(Vs#=;v zxyXIZPKV-T4Daq46H)ABucU_dg0OwXw`I1&S}gX+Kb=$#bm6-LVF;#a+~HoSaT=K5 zs`74#vyDwyr)FptM3l8c-MhoU>H}H~ zNi1u3uz$d!EW+<*;Y5ey`R9S%MRA!J8r;?!>SC&_?tj?gTXbr2wvsS(tM4g03usP~ zpqO{h)ZJTDs{?$iesHkqHELof(}w1@muiHx6jj?XL`bfwNBKf5)!plMhSONm^99FA z48tMHWJqfaBI$?7ESN1cOj3 z6WlBo{2p33_$3N*amEg4nIN#V67ISS{`)6oM^=0;d~~Q2WmG`|dc)Nw9w7x1G ztu?|0>oqOGE`}GqiyUqplREqjts68ey!LVXjVKILq*~g?FfT?fTN-_HCUAwKc7kR2 z;8R=omv7A2g_~o{Ht(HrWOJup-@@OUx@C%m8(~q~-=F8}77Fphz1>0JXlV8Jkj)`so_1dO~-=d3kEmhZ~CiXj73BWpA@;Y)8`R-cB!8%=x4CzU}!>fYH(I?Kl}^ zJQ_i%6c$x!2zq$C9SKBGR?e0Nhe}yJ=;y0a89;4QXE;*qe5z9<*^Ih#lVlCpQ=KA9 zWjZ%KWb(&{v!oh`k{rxhYks3spxD9ceUcKeH!wq%`n6%=4*TP!WlB~MsR0TbmepDt z8Q3Nc5MvFp{AAg`$-<*mObd}21VQDXLZZ6JNymi9d^N7X9Zvo*vG9%{-RM2h+Iq^5Zj+rS!Y?;I(;aJS^Sd{6Y7u zlX5;>SVSPyB5oMbv zx}^$(dB<{8MCNni_?*??{uY~T_t(|nNMP=8`NuaFZUv`xAPTTZzT-A6QBae+s})5C zSvOCD!C-esqh?wq?x)E9nRO-4SY_3^vdsy{+Zk|q#jcl7os?h6yP{TZx&880X9Z)~ zs?MzV;#G-u4mXll@6WQX?p%*um;;s0HsYfKq*4X|8d-rREW7BOoap2?wrkHede#+f zUB~HgkiHY9$8&bsu_WcjO}4<8rBVP^ux)6>9EU6X{7qic+8tX40Ho>RPhCpxxh81H z`=aa|cyS1ha-QxFpe=3QmJevE!@Y) zS2zrrh>ZQ&ZwZKyN);O-_zMnBW^m(}+4LG{3IN%c`{`;@Lgg++3(tfi;xw!z_fq>s$f77UIaXWSnjGH zE>gPzD-6Qog(GOA{E9+rJonr>#R>z(GZKxdU8&(uf4z)2?!$li6O}7Zf8lnmys-py=QELB z_IL-gu8W1qNq&SUc@LNV44~rU_9|=2X94#sVoTL^M%r%zJ0C!_%ZB|(A%4SCjF~7%MmW;kt2XR zVmBthlAITEr%nN~U^h|vIAqx;HV#*4^Uye?XVLUsVP9p-MZXmJ^Hc}t>qI-*1Vx+b93K?QDa`s|u3A~P> zh7f`_rR(Iha(}w-fu>-Loy@%WP(J`R1ONcvdV^IR%?kirCFC5t2*?yeP>eA|#&`m5 z^}%&uNHkUl3x-#rEpB1J3?Wof1h$_~rmV?a0Xh%%EvCXSypNUWKrr;pU)e|`^Bqay zOqKL@s7Nan@4PMjdc`~W<=^{a{@%U$FMe+XqcYRBYIH?&uD?|BnPblb=~mH|m8j|Y zQ!MOZy^P3eE}Rh21|L8oKj|2ILmHnmh%voxY38biDsVC3(2;mStyK>hHT>kBGyMGX zu84WM8p%`B+_u3>8~o0V0WC0aR0DzedHx2ab_x%q(_&$*Cczs_k!;wPSH0CVP z<^nl~V0dEv-IW)HaOJk+#*2liqWSr=A{Ox_kaW8LgwV6g2eIf+04g-_j!L?JU+Q@K z9Z7ZnfokQQcMKd(@y^>Za>(C{e5d0l|5c3p;u}^BC$57w&_3?c>aMS(OBR~OjPOyk z7dJ&BRB!J@Oqh&Jy|{LLZ&$la5W2Zm*+K^bvOwAVdIZ7zK1@v*+`+#H6{*L4@^ zm5A(GsMnJ;1XcfuX?zO6Anx&;jLa zAI$sxMy1;J`7vbXlklQBN7r=m5Ef}*c|_2yj)J;i1ztLTSTJajDvx(#L!BcUQl7K; zc>28rEcb~sH;pzR|FjS_>c>2iK|84KCp(G5hx9QnPvg^9w2SzaPPiLr0|5yF^Nj$C zZtT1ZC)32>;71QgQCR)yVM;;?^SKP9!x{AO;2}pb1OU)=8bLy_EmazMK^kWO1^|`~ zz*s|bjY}bVE)oeKBoah1l6&RtuQ7!b1nk5)R%2kIq{juHdM<2SUN(lG1JbM_-cqUm zktIzgI&DiM`r+T5`^~%WemeKx zj3}auFi0Z}o3mSrOGud10K*0WC_`0SC!YfnSRJAyR4K5Ad_&6!z)lIlo3%f&S>3(o zcz-(W^AnkH!+s590mQNg559Ydj_LI&OauS`%!i~)qYh&^5m~~_(~j#P3$pf&y)EZ8 z+KbEjohgRO%T)kDzh5*vvP6TSoh~2QAi1n@J96T9WZRVG$U5b9x@fje!pu77z+k&@ zaWOFKq)AZm8rg$-@8(+_i*X`x_(at}IybI4X&{+U4x?0?-l7rd08P?bZoioimwdHaF#>}iyxR>!eSz{@--6G?W?W>a;b8NS%jB|$% zpFWLqrgA4gZmMD~lKwsl8GQ8Y$&sO935(0bX~a{)<#cx^Rb@P$XuA;v`tU=BpsTz4 zl|{2@l31A2``Lb6OHMPite1%+M|8S`ap~k!#)mkk)pm7B7sibFmB!PD`=O8xAm)h; zET7kEanAVgOVEXne+^YoeO*X-3S?Afjxf!7%@eHYJz5+;dK4Ag6kH&;!dam`R6;WC zjILqW6=4|gefkdonJfwt^y#M*oree_jUez>zZxWHMApYR27w@ifAC8h{pBxDoDlUV zPCR%(6`R^NG?5B_{&}I`_KZhd+Q0s5s9=Xa|9o>4jchmKq>%DQNe+aoqJ$|iPasBG zK*IFn$B?}2o}amE_miHfNPGXlh#|DSGF?Zch3PH-4}4x!QYPBlSM@I48a+2z_G2SW zxDqZz;Q)2ZmN0V@yBhM*!^6Wc4Ap=1$t=ydC-#Nn zp%J`Z6eogYU05deW8aTAn6b}hxzPnb<=^Sy6h;EQCs>p2C`NxiaR>w z1!~`qT<@^WV5yenIptg>=@?fQ=$e;Y%fKfYG0seW$pMc-v`uI$%T`W6>^$*yAgE z9YoIBw}D!at!YOdAMomNkmbD-3*KZh%z*CXVHmU?ZQC^xvBSbvFg9w=Q-KQ{6a9S8 z6hI6KZzxc7%Mm#0$eyJ;ECcIZ7Efbq-#S3Hvq3+J>%gE63yM*>H#Eg2^Br~nttE_&-`(`LCmI8-jfR%Z+ag+Ct@1iNidkiH}ddv=>3 z4E~eW+hT2W`c#^fNgd}4c!_FAG&pzv3Ds^gaf;|xQ&XX`J6g*xeyi77V9{HS9E!vW z2l2L#IVgSJ3L;FSkQf|_7r0BjPal>JME>bXR*Vl0#`8K%$cJ0^J1*db8rkuxP@^e) zwWF=@wPxzncZ~TIh_)Rua+FI1MOvt}H9=ccWJGKGsTZO8cBS=|olIA$(vjnS`Y^k) zl07`w*h7_7!!ZsBzzIN%9P+mGlgiN%rKumq>E2{M&ZDu6SgR166`ttCj%fuxNM3*u z8Z1I2#Bi%c3yV3caAH;qI%AAF8ToGnZ^emS6c_TQCM?=G5BN*7)X2)k#Y%*_ns-li zda7MYnK;jJ&T2|2>D^c2@{|)HV&ss=6P`u2x(>CdKai_I^u(F<0Ss$ku^B10jt_4o z3N0r|10gjrj~+ZDZ&PGUv2VOd_brX7sZ$9^4?{c2wD>zMiOU&ler(kuV~2jhSKdA?l;ut;o-_6IZxj_$A(*cG4F?*vytJ1C4= z@udl6)$gql%nn)4Rd(H`N>)NAtws_4t!I_+PQPnjqYAdTKy+5Bu~1R$u?46!G(W*; zJ!3NX>{ro9GhOrOVyOnblg$);Icmz`2pAvH2=O-DOefMz21OVe+gZtnr{kc_HAiQs zcvf3Uin0`&Ts(7_LE&jP9Ii?gNCjPMjLC&Z?s2_|_}1gJkwvQvY&Wsx&T9%tK~h^x@jlXwojEq{JRAT`8ydb7FYr{} zBH?s0#0!`lKIl8Ms5>2coSW1RS$CPWSZM`8mhY4%B;1 zUb{B^2M<2^4LZMZHr%+lrj@-fyst-pM;N~ z-1F4I_<8!|-~5|Z5^CN6NG^`kf2hOsDPP>{K{AR-AJpfyL^_njtoux z_#Z{2&4fUr31ODVFJ73Ro;DVppL}6zjtB$dC!G!zIYGkx2VnItgtUoA3d*>vYlRH} zywphOo=KgdMhn6p0T7SLc%ZN!ERk3ARA^w=G)CRXT}jtAk_4gukHCe9rlA~=`OIc~ z<*SHpJ0aqx{I##XrwOOy5D$ze+3)}U{88Y?3nIRPQu}qp|{0Q~fcN&yXW+FfOrOZAPJ-y(aHy2?JB!sZ1i9({i}&l* za-{1g!hU-=T$r2Z&kyWYFx`?3^$_B-WiG1k_Ie>gI-7f>JZ{DFVR--keh}0uz0>&O z%4PKWLM>L-_2JMXs++b-rP7X-LcM#my?X>E7dD>kvJxLiqcD!!*~zmF-WfFO!?m8Y zI~$)HwFyuB4w4<>-g2-M5_{pUistNaTHXrfOP66(64F8;QF|me)K1*ERN1Br*k(X0NVB~yRVAxQ!xqFOA6SEajB^~Y> z+(vSmV*>)MH46=3kS&GUm$q+j>57wYwkvLFqXG}n;j4P^TzmQ2GB-XZ-!70%jGMSK zsK`0nQ(l$Mu>_0*NY$8eqa=HQRJ)trUNFrmsDtP#@)q$3#H6THhp{F1MlL^Ryu`Va zH#ZZ%p}-irt9&w2KqQ8#%T);lg8+&I(L;Afre%8adlUQ~jTTIrDh>QmU zal+Ssnk^*asvvDsNeEZ^RoRwxpLq7Rjq}JjV+kfU`K8a{sYDW-mrXL0hLdbq&%&7_ zYTl+Q*Bm8hGGHr*TY2+-VYslMikZgH8b@TtBt;X~;3Y&HUe$}%R^~c7Du_GjO6p2C zUWgoq<2sT!r#cLXXSuwpaYt#bkaCP6X*0IMNEEYFqiJl(VtswVG7OtY%95M)JPoNu z3wAV$X^~jOZOgF0>&wIhD!2L2*^0)B?8f?)=U3cF3%yBe;hbJwpS}nTN5LSF*L=~a zUtQC{Af>(clumltIPz-7u&%E`fvc)cns$vXPYvxkdEmIMVHReKiYH0Jiq`YjNvp(HzyP`E=fQRvVnxCynb-Y0k1paWZ$F zj>jn|j(t8NylG(%bKM=>^TR=&^x1iIxpZ)T6h*ek7B-CnKB*A4l=_p9(Kuqr7I7F(xl)t0WMZCUVqt^}ri+LNhLk3Ddd!9n?dGNO;!BrDEMFk9nja()$?oM7#$;I2ORBMp z*YVEwx!Tj3nr&HxXHI_Pdc-n}%5|M&#By9GtqiE+3UlX#}e6e-CDDo_Lo=|WtyLwxdDTI5o~CM=KFD{hLSi-$^1PkE zsMr;a z(N*l6>gWJMTgVNw!>jI<+z8pQ-LBTsxJ>}z=&~?Gm8j{1B6ip$_jlV4W(WJ#<zuC-S;}HIvvCwD6cZbCDs^EPS<2%xav~G8w6@n zBu3}8|8M6w1?`JK0N5sjjT8*c^vNG&#aaK?{%l8J)mN}+0E!*EA~(NloH>lV88YJ< zeU!+=<~+M{7f;((liWP|`j92tzw;LdQE&g*LveU(r)N|yjVeR7)hz+25@3+ z59Rk}zNByEXH9F%zKF7B3{VY3vs>+ou zsU`0`^2LWQ0${rPzf87h>la_dmiL5T{P!;5%5q=d4gG(~y*679A9K4Ob9duhqLV;t z6ie$m0S24jr-HPe>RX_L+_uI|)#PUKii#~#t%T**mV7gfju>~ClBzN**+2%7$N~^Q z*ws`kzc=aDu1-ZXW`(R$Jy3l7zyHr`eR0GnPL02(cWZ|GfAoP$L(Wo|t>fIc?Y_lZ znm514L{I(XA71IXrdD6G!d{=xt8-e^>J#6483>PPOwFofJJP7_Y3sE-nP~Y;2|q6J zWg_uPEIRI_Huk)Ib9&wL!&;VBq7X1b%So0As3U;YN`xK54ne|1*~e<2 zI0?y7ikYTaxYl+~mLtzTt5Aq|A9HL_4H*ou%Yk*%DL<-IGT6824$&7b!2TI1qQAcD z@KD9gVxHs<*G7KVh6P(UZ$dC_q?UFTjOs0ypZshDHA4I2W-ov27z|NDKx@RbIKm1O z6YB%r^C}OADwQvuVSIdYdur;HS7f-7jz$QCv_KHy{pdkoo*o`%Fb2cZufGmK;2RP! z9>il1zyNbr0H4ZG?y)>0i&toeCPG7y!Jv4GpAf3xxWs}AeCjbxxTf|e@O6BWcFFQv!teeE(UrHva3)<<^x>C-X|#`U_qo7pSB_8 zAN&A1bLQAFF1TmnDeA<}enuoUB$`4*f@xa-*@&|&03eQjm*gOTS%v~mZZult9(yd1nwSU8CkLE{ zF=zCS?BR0=>6*$hE0Zqm2d0PgdsFr< zW9-NgCDRT|Who*_fBn}irc$L+oHSYt(&L;`G4WdvE~E@Nrt$HQKRz^s7|KyL218)#Q;WREGa8_e9YfEY zA!APceyj;~JZ&zi?rC|1ksyxq5qd|S9v=rF-~bjfVO0_atbx(})TZ~@XCYXqheAq# z0m>X9J;!9w03sCg#was73f1JjwY97xYDj5)H4;Ib=<1{uml*~k;i^-p2X+q}D78s5 z?|=SzNQt?4gjPbzG1V0Hkj_dFMAYDeyzK5~z0Shnid%^5)k8xL1B7s?j1JjN*|iB- zki86Z_N*7-T|4B_qW}P44yAh2Li^aWXCWVwpaMQVDsg%Um{&dL-Q|$uFyqO{hBS@p zYQZ>b%27If9IF`_x5-{hvq*-NYET;d=co6Q{!&I;v+x-JyJ87B{tbIkuODq z{+K=sTahjPwvEvy1M_@1Yl`jeBBR!EX)D>Ws_lr)j@@hi=5BD*J+C+&EU^rp+hK@e z3$BF@ivGcn=nh1^#z+#&_9k~E!mqQB%V|EMH)2>tVK+=#h!%h6T{O7MbC2kGhZZ)& z5x&do^9DZZag7O+w;KvCqf;$3w-D`SV6U9>x~#2UmP9ogq;U`bRqu|q7z=ovBvXLlsR5HsXr zJhP*HNmA1 z{l(U8)*8u%<_&;c9{|0TmxJ|xL83c3IX`9;vY5jPE`d)j?=sG!=Fyb~F>`^oaq#W| zaP{Q-hO`)XQr#Ocz3QKLHYH`4Ai_$i**U_t+w91XfJq&gzy;U?oxKrG>i2r*){Dsj z&%3WGhpoYd$|R@IV^4k;Qi4kwyoq?S#V>Toi#R(SHasW*EVSh0^bA1&a{$qx(}G4NzBkxmo6F0h+-RxRsfbUz#=UWVGduSKMd z_X2$r3BZg{$mr$ZFa6=K+ql>yx+TqQ!GqH%6EXXJb@G+sfd{^*>Ea^+*wS6yaI?F699~%hX89t1l|r>zs7REgwK_lU z>Kv11=&<5`51{3dN29S=Gz}3DkDTLqhOg0RE0|Mg+p>LFrQwAeri!9~ll}(;0~^Rr zOxxMbu)A+)d@m2d5FQ_>**&fgyXN~s>z~frDc86uMgo$hSUVY7%;S5pG7V$W>ei4CF0l~G7unEGU!OaW)EtY^dvIh8*9)>Ci(+c*FGccHhQ0XKHe{P+=^xh~urxJ&Tw(wviG5m9E|PlP6%Jjqb8#fN;rP-VXWncY0ohf!yc8!-eo9{Oo$cMD=By#Yntjr#3ve)%{y`1%!&|Mt%a&HBK*x(tX>wi2q0 zy>j)1E3K6P&Q|7;308xLf4S7?sVAJnsMNCYx`Cq%F&M45C|~VfuD$`nDlr>-{3csIN#c zply4;j>1`kuM!;X#BTG>eqL->HNV(`!Id|tW}Kf?uI4Q#up4gx?`2W#32CJ#p7r#| zok)dk^-d)pyS3wEh?1bodV8~Qag6BqT=BqK`;LGQbZu+UVq3SLXq2;i19UV>{_vMT zMOx_cra)tfyz^%5RR4ZllBszw9{ki#iAW_6X{wZh!rC=0M%TlMKIoN{HHZh*S|1C& z!HU?iW`nCZfabq!<;jtUJ-tX{MO*j-2s3@6ny20kO}JV1AAY-(HywF3ck~rY0s5IM zHh6Y3ymQCi1SV`Rl1NoP{ctmxbeo^|NXb^ev^?Q2kb9?ctA0jzM4De+_%8qhuN0#< zD&oOH|Mil6+Y3-z<#|vCA0GbkH;3rt&u-jzXFyw))2BCnN54MBd2(w^Uc50TEgXOS z{gbwm&of@I3q#ZKl~xy&?WL1?QzAYKz*Dc9MotH+iLV~L$_FW1mwMV*(G!vFn)*n< z7Q#)fj^1)s9jVBinpRg7>9GhchsOflxyVZ%k^v9dW=+#bV_r zZY&sE`-a{crEqe3Dz>u2yN839cUL0INr4HEjbm=CGIK1#ZU1s&k4F6pY|3G}CxQmE zhDX=ty}axC#TCmd=C&l*3*M-1nYaaq`8{`f7T3>4m%GGs#evWs?{8Pn!g$>K>7NF1 z{mQnP20)sxK@*v~3G9xR*~{h!0y zf~{bdHHD6o4w@^xO|t#ssqai@InmRYV5@U4zfJSm#_*u1+g!>Jt@W@IqJ^ zG{|)ZP@|`w+l(E6BU3Ppg?SA8N(@54z?_BUzz|zZ{oq{6XJIZXgBcLaZ?J2ND?Tvc z84ZmI5q_xts6K|#FEK7@dooi>%}@oCRen5MI}46E*`_dR)tGllgi|4!QrYFHHiYPc z$!77^Ida`i9Lws0y2o(l6sPv3P4>z%G<09h&hQFTmLMeO*-X}rR8vkhxWO_fPuGeD z_K+u>2F#G14PjY~dt7SUPBdfUj!ve;lDv(qfm-n$r*Bc8ki65bnUl2En(JKnM!3+t;Dl4HlgeD#3h7jTY5vvMAJ0y`)S<=BtW*?M8~nL0FB> z?e~QS#;;)p=ew4b_he;=W(z&@ckE|5N?7p0Z^r0K3xDNTZgYbIAW@(>4nmd-OZe3e zQBKf|_-ZQ?E|Eh)S<~pML6;mm_<9AS*silFIAz6h2LKNc^`&qmP(Xns{o5p*Zdi=f zCwX^bXpW+2X}rw-OmQ`H>>iKT0t4MfK~kyMPQDd9 zt0t^*hRne8A*V9oF^Kf%m=a{X`a#oH9?(G){Dg9Xl5Jo<|6g< zN55idSJQ_N3j;f=zsOPD-pW1}gyU;ytO+nLj}Od&apVrcASX<_6Bj7WQ(2HOPx2PW zE^s8K7RO+0L+mVLg$sm$v?(bGk=ICs^8`n~f|I;QpM<^oY(V?&v7E$gE`#5{vkF}n zKsY@zbVSS}oi!Ge&tNbORr6#vZXNg~)h-tMfgnQXI249qAvnH&FuoYr7aTPBKdVOby=)p(>Dbfl}1qfS@BkAgwQreVrb&SJ7b?Uy5h zkqnh=HM**yIitEHg5L@6M`$BsZyIB)G`{;cfjf8C>k*(qL0G?!Bz=k9c4G2?s)Mo1 z7=a$*RU<5pXIN9l@m&3p^Pw3EMh1@)xHzhMgjoZ*dlo*NbmFcGR^9G6fY1%D7nY&|9HFZ^oB4cOpB@wZNLQi zo{nt7Qz_jearNd8h`Kx0TUbj(nQ-`yg;Cn1O{Ax^;L4nnzi2k13Ls%nVD%t~$&cg9A zGM>^!oDlXfN$Lj_a}I(bEWoS4-KrU=;`a98W>RTXS@OE_zTeTKHPz(swl5x!?QZ8} z{p%tz>DY__yqpEkv2a@t6C9E)YA_uUw6<2qSt_hY0TArWtI8JZ&c1oQ%cYO_ zV9LW2Nf>pE-LOy7Y@Mfx9bp@HOvd@SQ4Fn7`lgcoO`*BI_` zk6PdiKeOq!^zrLsKB`vb@QS46oA@3W2srK`YN(m&?H);lUu`6L6jEZdNJ~Ruc@~8! zriDmFxv7!71cxGrlsiOKxosR)m)V%KiJ=6CGL$5D612KockaDkrTU)Vsj~PZa!e zNuN|a=s+x{l;+tdaJO44(D+4AAX8kgDA3Pf3J%N8o9wWNDtbQFmxD_%yxBtnbgUGP zu`=TIB5ArA5aAkCQu*Wg{-K1qk3N#k?iBs>Gq030ds}!`0jHypGQ)BhlhN6M_mcu#Q$jbefR!D!r%z4T=`ml^k|A}Y;HgeD%ntmhMvepn3X zb!$B~l^1Q$fx&)*axeh0r$Gy%Z(wd|fB|EQy$RV*JpBw2FX}at7YNX6tFQ&O8gDt3E!dI`4ygAVD_9F1ctTdW*}?pLe|FOCJXxTSv9q~H zSt3j9`os!psw|&!);~lY|g1tjJdPo183*%`0vgIvnsbTKc6X1 zo2^0h#}nn(9%(XDt<&c|lr=eKs{Jk9@zm7z>GPFTj%-o09qlaso%I#kH%>M#e9(HN z@Z2ztG8caG-xub@xw(~dv+cQQ-Fwmt%c@U)@)LF;Z<_hS%l|x|Em(A$n%l`8yNzje zI`d%mywhK=zBP86Gm~4B=1#?M$1>U%w6ZCGjDA2$8!hih#-*&(%g za?6ihxlX_zB~u$?78evoHrv4A1cbt!fFawx&{4d0_UzBnjt&FD2~fjIab2-z5LfQx zxl34|T))dR^+Lw^H2D05)W4Lnm4*FkM-FSXIJo^lUZlolk8;(7cpr!XpFdf?u zw(;13xtbwN3(wH(6jY{V8Q(Q2H;JStYw!VWdLhEy2wi7KHi^EWhzEM+l&7??+9 z?rVSCVIx5|LpTuKce7_;TW39E+TqSgl^Ebdf@t_iDrM*ER(7U?(6rYyqRohX&Ez5bAq;(8lsH>&Y+5GLHp>jN8Qtp1-#fO@Mr=nw90C0q37&^hY04JC3HZf-lTI?!7T zR-S`vKOAs|>CS*CZd#U2yf@anQHDV+-o7%y#_(qDF_pX!%CK)C|cQOq{k{{GCZySR*TI|VG%BHr3#=|JJXC`Gw(Lew5 zc7+M4942D$GUco9a)N`jzdPV|Z+Z~tSfoalC7X5p{V8|B5S*|o5;_Ym$vPK)S8u6B z3gi?YBDuk*2A?9HBc8i-QA96ZoS!&*CgST*MQ|O-B@Z0PW|MmaBGFmU*5_?NFwl}t zQvOI>`r6m1)uo^tHwAm)UgypZ$JhulCrJ^uo62{7fO*Ija?&-|(|+U=KH;B9-i6;w6gP(k{1sf$*;3TFW1a z`s5O2RS;s6mql64G;!tgU-`RV{oR)r79W-t6faE&)kOgJjFpCbUJ2X6EL&Tioti0= z)D?04;9%PrL97|tENnrk3AZXXNVNh8u$r{#2>z-t{=xZ#)yz$l_r!%|-uv-MQ{ib4P{dj$?cP?jaq;dGR$ zM55_VlA=aB5gy&1LrEnA@468bwN@*+{eWIEc?DGNDE(baO~B#dOx9xg9~b}mWX?nW zrfYsQ7b_N)?b_vqjh@kPe1H|$u0=}I<}joGr!ta+`M7y)xV>=`)*cX{*DW zgp`mT^*?^(Z$q9)+1HD8IA~2t5MV8=B+}V3J20O{-T6Li*M`EXjg_kYG=ieh zeh^rbmR%c?n2=_`jtb81uvgJcoM4a0K`=a>x1^KqWoeh1Thst}eK&Q5EdKh7h07Pm zFI~*PbYXmnpE=h&jw5ipnf3g`Ze~Xl*G0Q(4yT6cvEG_kxNEjue$-nJTo_-xs4kw@ z7cS@*Z{L|$^XJ+5bK?v1Pe|Su&fPnA?%w(N!u;7M=%AO-(sj<9`;(LRPG86ePkFO< z)$r~V+nt-eefDd|R7p)8$V)z_2xCNaC>spk;!eaVV+)|eUmhkMpLz! zzy7!~l}*pSa+>r4?Fn5am)?GnR0OZ+V2jMZId6vDe*3_5Z+*>;>nc6UB)kWsoZi$0 z5&v_Hu`PeJpJt(nbGM}!Ckc(a0H1DbXWj`sDL@1#13{uazq)c~WhJCkI&*wX;$3Cy zyHNsSYEQfgw4WeN!Z=$_htF2R&_Y53dS$i(b5-;Z)id= zh?@cK12cJ#J$sOzX8XL%!c|3xO-OZ8ERVBUel=E>88z1pE`kTz`oD+F;=AQ!Z5MpQYltFA2+k>@= zWEzj=9KtRuH^f_`yVD3HYUzZ5YpGLV8<#6_eZCP9!`l$KNgIoN!!8Lx#VQPoPaNxs zRbbZFW?%UEFHKy#RV{t<-EW)<9KLpk^d+ZL&;5Hj20X#+<=c)x&|9TJxi9hh zVR<)O9+{=SJL9>lVOxiyv{Ki9{uh7#3nGWVzSOSS=f1mKR`pBQmcI?i^|Ayoz=6f< z^(9b`elgtF`1$Al=GJHi1t4cIw>F|U8vtZOxoNqpigoN8@ZK=z(5{|zA& z4@R?5bnN5gOcnRCh0{p%n|q>`CTc7m7cA;R(({5I!Dffg{yPj2Y#d9NUr_HQ6m68 zJ8JmXKCOxlje-S^SIIaS`!8Sm0KtcT_bVU&>L=>CR^ZIs=1aMLY`?ve6Mst@GO;7E z_dWPadw=Qoj!i^UCT^d!!RuN%DTml&5ld(N5%G!f{5gk|H?RC>_Wym8A$;H$=hj~= z1{erlz3NQLSY{*_e19~f?3;c1O6zI4R}8-LOjFF9DT?=2$L7(~ z$79-@bf#z5x1Gy*JNC{TXJwq+SkbjF-0AAQva;1BmK~he^6~BRfOLE{~cE5A?%5AQ5tw04$0g^(X#&SA!$=;gJy57%pW_4NAD($96lo#h7~h{euvP8yrY8)ywOI9xE~Qn9d?JNOGxYKnfK|0aEbwvs_=(PIcjoWE z_t%%pAG#|}{u_YS+k3#z+X?v*%xe{b{gt_{J4hLcM4c@Wiw&z+K9Ub5G-V=|(|*SgOJ`_seC@~29Q>ldRq(yT0qTMZzu zIL@4!q1N=P<)fj$D9{3td4iDu0e~KQc~7iU?@Z@5F_~%J4)cdxZIFt)o!pDukzrnh zg-2dr$)>B|XnN7p*z|(5CO(qTu`NOasew>Q6nnPNz|aMm7bR~K$5>elBjj4C1$ADD zEE+SeiU43L6Fk5K3IeMm8@M8PoD`%!1}v45nwnW#)-+?L0RoO~nNy|#1IUi*E|K+r z{w2W$76{-0F@@$21OPC|UW+*ZLbE_nE^?c9l_&>FfmiqcVFx96P})-Vqj*>}$ZzS| z?3dUBw(}r+^-Z=LxmMm>jWV7r+5E?UvS<#dE^L-yB`Ork`%`yd&X4tNJ;%UiW;q0T z-ODb#vDNFdP!dpHE7$UM{W2|jZGZp-1Hv!@-dblKnmOCOZ75}vMLaB4HbUfs*E5e%6?_NNMV_~fuA z8D%GLF}Imp3_B4Wj8+>}$5_N3wMFgrv1q(k@d?#K#e()*M&k=w6IGg4ezl*gteHDj z*UXV%_X~>53m~hw1G1gHX1p*(^W*m%{CFhL`{I8BbN}f@$nyBAUa_*Oha%`zvTt#n zWO~^U0nUX8m{IN@YWC-*-s5Mdq_XVa00mVR6toJzMuQ&g&C3$~$%;hbjCcuR$--%q zgM+S+<2MUTxN6$XV01SCz}$n;ktK5%Bcn?WPDVzS9b7r-MTVy$baYyVO+e?=Xb7f} zl%qnv+V(L`Y;(K))Na6T-eke%#HS9?^-t9U)=pB5MB?Oy+~tp7dfN~nb$NRF@{}3T z%y4W2M@wvR=YxZOEhsHdL`9r*qrUv3lTNX8Tv&b5(nw}D8#HB)Uuzalw@z@8J)N2A z$ETL;&Z%V-S_SF}$T_tjnn8McNLzwkKeNHE0cXM?&n)Nrr>@E<$)1}mcgnKz?xC#6 zR+2fLPMS8G{p0zo91|dBpG}VJ4%>81K;>;Rq~Wx8EFlA%s2*#O|>*#foLi&Gx@@^3=(9 z)ZOHsgxeJcjV-O;aT^z{pHBraaUgE@FS$2H`5uv>P_0J$j3Ao4_|X>;@zZ~OXCo33 zUwr!#aWU^(W`q9h@=KS03kkgWcgFPI9%Blj#^v-8&(CgL5ccuQK=9-L=K8%*bUBwk zdKncKN?cdG_S-M^aeWix)xT5n(~B1_{si%^L;?hvQs-IE+z;-MVVxJtuiD%@Gh)+N zhJdmB#Xjr2WI=gc>OWM5b0$5U(`BnzaKfz0xNzR+X_6F)gyNJ5gF6um97dz{YCSL| zYjoP#TpZ2gYt$Y=4u?SCI;|Hg>ig*U=|QdZAbx7w{OH&s!S?j3KCMtKzRA_NEX zb&d}6VzGa?*~>Vrx?ON~Paoz3Xf7Vi`tt`5;sGyh3-Ba{OTP1${wtt8|Cg?P9hi*x zBcxlI7u?3}a>g%+hW>7j8#fDDuNOzUfu*k(APG9-220((Zq1=Ve!)S}(#a1V=pQ5p z-#G<$hIjg@{v#KU;J$7b_=kV^<7XK#WSO!#Lu*JBl?Dpyh*yL6!z5WZNYw@}7Q>k) z%t1#CZU};XE|sS@`m6)arA0^IjsVByZkqIye33^@7{+&ok+3@58Qx5_dehOfGW(Q< z6QZ3QHR%d0bK2R_`)JB7C6HNob~3GZA$`(`j`4SoQ?&;M(s|t7)wsa1k3MRY3%*Bt z6`vnNj_E!!w(O=;0b6n^_9#neb1BjH8v^@?Dmc-%S5%%^OtH!Yuz;)Y%2bVyF+10^ zPd>S!-C<&UEkcH-EmpCH*2tC>Z(qjOf}XI)v)q{CfT-<1*o$;4yH^Ni51p`|I;J&8 zF;n;1KXYVMXS+!}r?VU%iG@q$Bg5g5ly~HIz8BNYJ##jo&yDgEX7X~HBomU6ZlyKd zuN@GJrlf}nOMnCxdW?Jdzi1djHd$(fY_{MG??-}GBf@F~oH0p}5M;rKmhnR*)s7Nn zQr;91iXahq#_n^AqmR6C`}Q|*$KN(#n`QF8@lEv67solYSrV>QNdCW~a!FoNWWoOF#{ zGsg>XX5tzra%Hau&pVyxPtCZf(0lR`Ny+HKM{UIb zVQ>2)K$v>rEdZ!O78eK9vwsSpK6+|l@!}(E|Mr;%T`3`PKe0Je`SOjaFPBx6cp^lM z+!%ncb{y@qMYSt)RjV6M@xI1hgbJ&Bi5pqqloCwM?y}x3FLX8K##u%0`{T>u0kfya z)^kl^qkEju@oUk~7UqaB@gpPKHqs_Ps2y+GjGTd0wl^XsNzgFA|d;%ANPK5CS!74NlvtB5B0 zM@j_tX+3kBbw;mB^JXIiZOpG+jk>t;U3hBqy}|yNwwDtU8(nR)!E7&9Fk)$OWO!ST z!KkwJn@JS>e3vbMmb}yFi$`yI7UH*fzSJA<@4aGQnzdVQM5Eqn0Eij?YH~^Pg=Xg= zR!b{4t~`9;W!c}{VR%H@Ilv&NJs)8l5KyuedN^_3WL7Jc5@`?uBm2xL&pg$s4wbMP zg3vkV=3OLgbLs8VW}L$k31~7h=A)tg`|th=q8h_GI^@3|IlTdLo4;k=Az$*TWU07$ z+@YnyPdh#g_7krrSQqL+Hv2joD~iz?fkDZtjzy_~lgHg@w;<@3xzV@xaZc?>>w^5i zPU$K9U#YpeV@0fmLn6hQGn(AFTHi%BDp4o0CyC{~e+GmXUMrfXkNc$Jh}i9urA;jOXykA3=rl zmh=dEdojq8s1L`C?ZXKE zBDZ<~BP_LGJ&KJ!sbbhScqa;)DwZY|uz|0|kPs;z023T;U>6co>_Ck#+(tYRw0R_Y zcu-7|`dE~hU>%948Zh87u~9^LQPje!5k*s6xWhcY3k$l$4Lq_dN_X)!L0<0fM{oy^ z32G8e9WB5%@=#-l6y}Iz0mVHWZ%QjXK*PKdBhbcAIe~Ophvb^#1o-V71F|ymT@dW? z3k|hAq`LsWgAF9w`msoP18W3*)m*&%u%*$N(ybOwm{Lt7R8DCTcX=K?cWwc#AZ}x* z%nTIh8p51CY z>2cTFl}$Ggdv+k67(CiMI#|ft>8$D1H>>Vc%3Xc)O_L{eqbk1n&5C&AM(qBoDNEb6 zH-G%bLm`n69=`Dgz~S7bH(t4Guu*l{PxsIMIwM?!=18Aglf+?o8)Iym6p3z0M^~H=r4W&EG?P5Spw!m!JMJqrTQyy z6=XCLvF%SpAc_k^&{3^s9v{(R;M;hgBZ`nvyS`)rLtyC76d{F6%a9R{&akXlilYQ! znaC{~c3AVcZ+i`EFl;`Po|}*22?%cGLcGK zDON7f)Lx}>_b#cIvqEg&ZP3ryvN@gA@9FjPhmJ6TUexPPhocDT*0S=HrAKzD;G=@7 zoaNyioYOWe+M?K`V0hG)GWa|KWvgsY*z0xN!m*or?RjI(9jT<#HI6Gm(3oLb4}jjf zd!e8i?NmRipz&!mVpWZ}z*VhPCvS55#zurP<-y=4r?J)RQ?_<{)3+zN5<9`k0&i8F zJD;s`5iF1{)c2Y>k!0x+&@vt#wE|1XkL;&EvW^pA+Y(ELO_RDrpGbH*8{$L5edB%e z2X?j)Trxf?x@kV*VspeSKb=0mXqZ?vGZA%PSjW9ceu(-1Il&i;8sm%{Q03mbzXVhXGJ=X+e<` ze-|1R^RHU-jX(Yqh_<|gu{7^T;O41s{rY!L z+f-~+Y;ULQ;R){CBa=)zwD{c%F8&h0qVgA3WpW$O_*R}*s?poe!KNLJYqA*IWv=`8 zy1)x4_`?M4nes!U9JYyvMq$VO+ZU7{XI8#HEAq@g>)z^pZvGtjVi@!7dgPp4bK-gb z%G1pc<+=Yb06UzSNv3spV`~XL0CV`)l7#fMglRY%`R9PEc-k>zAs))bcm3t(&}9Us(OgM(e|aGZ zQAr;24&SGHVZpbhZ~Xxwqh#7LGb(x-IV$FR52gX|rOn9CMJlKy8P=l(LH2#v2cj$3 za9W<(OkFF7|F0xV|C8;p4T+*SxT3J+^+l|-Fx}=jFbeX%m#4imNT)PFRrmtGs1o_I z*G)d5)rB<^e<5uPgPVSsxjduVVaHCFztB{KF96m_xD0FgB;gB)@-pQ4Gmx4RxmAoE z1ZL%(}p3mBZcni{B9zyDQV0{(4|PrD&1?3>G%YpXkX^; zSb>leOKV54mi3jC3Iig<(Zu*2@1&&W5K{-$=sps<)E(b#)+_gFVEAEo_=MPG^j0{ydH1SE`MnIZTCH2 zNF`=0ci;Vq+SSV6&uW~ApMK|=ScJT{@U>dfdSTh^(f9x68%S|~xE@Ed&D}7*ezHRd z@37#^KPDlWeQkCXs5;k<%gkjmvl-j0QnF6njBmC*OI-FU@@TFP{_m$PO=*${vaeEF z)oFr-T1@*Tr!zF%KleMkM_!3yE?N{H(KK`Td&k^QOVgprTu@8zoy!!DpTY-H+g?Q< z1qgHSQ#AEX4w_5NL!K`rQEy0ZpPWdZG=|ZMr|oxAgBD&Zyno@ncNeY)kKPalJE1cR zCk`JT0&$BkKf8I&D=>}8Tgl-$B{Yn}u%w?}R@G#XfA?~YS_Bcr z%?Z&p?$8P;&k6PU5sdyxZyZ`l27N$8oOL>3|jGQCkgtABy%@q=T z7~w$~A-$5+R&K4lOs9kZi5Kxn=kK*~m8GX(HLt8J-NX#IX~#bUV&vgF;zMOeVMe?g z*eIb)Cxju?`P2fe`U91$lnfRY?LMloE=Wp2*Lka$`rL`f{LX5&{)y9;I8?2@lkw%O z+lN!iJ4EK0%!ElhFcl{NPZ22QP8pOK+@Ba$z@heitd-5raKGDT2ANztyJ0cM8e1xn zvK4eGcgEH|9`H+2W%SU;iRTMWNlCet!1R(od=$KAWKcN7-h`$Xi-(kBS;b@2M~&I8 z?i-LS{ztM8`0LW|jN;>#ijl6eEuCEm#s7iel8@_VrH_cr7=S>?aB7`lHpMsX#GF{k zQdj=f-2uvK$IZ?w^3E384FUi_xCn$mbdbt$nG_igGm^|9TA!HVGZ8MG^=Hy#IOES| z_;fW@O}Te9o{<;-?8VN00s!y(?&HedpiOEgZ0vRRI&*!}#)1w~eEGE!H`q@N_H(_1 zT>r(t{9ZrTKgbkH4E_NG%_%F||Eqp>uvgz4@K)++1QIM!$&1QM^cCTz?`bwpHFAAREJ^FMta zQZq5iQfa;0?UJi)eoPSSdkHY1ok2mc%rh*n8 zJRpQ3S}tduhMW6wZ;yq5FCIUBNf_1?Dck*la>i@ITn5{*#EuLbO_*KsjM?cxw~(^q zRQQ-A(QT;=F&-*Fgv3%L<$+O+mQTUOP&>p-SNC+qZE`-zdAhre0VmynGloeRD#B2Z z%FNA2H2$_!h4V$88XF^aj5vmOJn+_Pl$Y~w;o4Isk8VGrM+{P#vUUU_TS}-O6kw}v zNRYy&Sh$KuIX+fy?>4qlW}G|(edP3^6A&ai`VZoF*A^lv=)i3c)B@pzb(v=i{u>MhHY_I6}k z1_BjL{PoqFWJQz=W0!@5BXVkV$FtIEJQu%v^Ep!mrP%b%@!SO>5R1Gi`~xWC$%T6T z@OF6TJ0IN%Hp7qpJl_mAzw^;%AljT}sd35z6_k-mfx#)oB$r4eSLksrxuNU*nu$3P zNF0;$)-t#=MYB;I6n~QAoO4%)o26+U^g#&8zCWnO$t!+TaA(f0oBNR*xGJ+?y zVK8Sfu12}Y_4B6;y$qhwbleINUqTi=O{9~AI ziB}5dAg?6Mk&Cfdy1DMAyOA zH|2LLg5X+Vh>mm7lq>mMRA3IVDyB;`bD|s0mKZb-*&`VDg_AXgM(#@kNDO(>)v!b> zwR{`!L?9YlZQ&T0^Fue%1`cs8ib~&MS^{_ev;ZZ+eKPuWFBs)xHnk z1lt*LL7`j`NTrzN2`()#SC*tKh`L;Q=H)0)S$HK+)@TcoRN;K|Clm|Us6+x>(NI*0 z7y=AD($TI#uvWD?!iX%a3==EUzyPYoOf<$KE{{52jO6 zF~NFNQJNLKTOk#)^3CB%q+9T? zM6yU&^?aFlMY8JMP~4VR@=7otz4=OEIRxoHGvJ28{Ls#(L^h zuF1|{%UhC^sSlK;5GZb8P-pwJ4;k|m?!-G@bCU@M}6~Ky7x@p3D1+IAB-r0!O?&AQ#Xp5xsdpR6m~t+ddqW6h=&rzY4LHx?ZQuHgARa=`niMs<_;U>Na{g{(eO+?LWRM2W1hF>yhtQ{>#a~ z1Axp?b@b>O*+h21;{*PQ_s8`?d;SZhdP%D{K(}XaY+f%#7d)y}-*p>)6a3HKa2WYP z^}n3}_YIEza_JAAtlu)#PEht_8E4`n<&U4Xulu!rOKzEfYKoO5NI6n;7}+C>(i%e8 zvNN}ugNkhkVO+*yFPmFa%DyzFtm`~i)7CVoKtn7RWJ97g(XPJDi#bd&|Fuk?N{t`F-0nw9 z=&BSjPF~FfKJptI(Jt=vra87g-hw88a_RN8$3@HyOyymfFy0bCS?X7_;k} z*@B}_sL70>L4bx$Z*VvlXfU=T5I}{LN|7-1Ue*#MP(qge1S*LNc!8?IY1@@fg)>qX8-_(Rf^duUs1=Ndt{v7eK<8V zoc^C@&M;wv_3U}8Iju)wdU&{f_$a5tzY(xur(cn0pE_-^xHMba!z0_rj|n2b{r_RK2b2j@<^0`;;t(wC+pmcOdQF)`KIqI?+E(i$${5^yrFP`^-pTb z*nGV3E%Iol@$tJC1>q7Ne(_T2OL0Qv-<^G8B(G^rXV5kJ2DhCL&a8!=d=lV3K;^f* ze2PNWr?M?We&q4HvjQ)$Dr+{pFk%DW<+mvgknBjOM-H5pf)&3|34VB|!k0N)50=8M zr3jyKU&CxYT*g<)@X;1#O$i@2N6myO^$kiStxsm#m0&7w)MN|Wi6G_A$47zz&wMy-Lk<##G+Z8T8i$AC z_@K^!A19a?Rq^F&2HtNS&~15Qxuzb1A*D+c9DSz_w!KETW$VqKh9>IuiQs>n96Q+O zT3`HNX1gym?i;Hw-dJIm3#IVHVpkJ(SSPue&#dgAwwjmSgdoE2jgubF&wm~WSlOV) zKER@sdl`WdHjgrSty>?iAt=M9*ad85zRwQ$cS>Op{M`Mb1pWYwEGvrlK`8>R&wH?` zYc(jvZ!8l9Ewa(3SZhdM?(rjR>v$e&kT0l|e`t^l}_X2jC zUT}cIt^wIhwAz^>Hn1G^28w!F;~#gJ2)((C%&Fj<9?i0NE#_u~f|s<9k)Cm90NBYF zHRAi(T8b+0k^m!6)DVy93vzu|%Hf(+Cdz8|Vs%Y>hsY3(d^jAb8*P}r-P9R!2ArW` z#JJtaN8)5INQ^)p>o!mbO_(YQiAw{>#CKHUd5I7NP;f+it%I@j+ z;+1geNLG_iz^!H-HRpDswYp=<04N1Ujt;Y3Hd0&J3|3_?8_GE}UU^6ECUM#q<`tqJ zXHAmRtco~YxVBF;0gIL>qotXC6ssp2tbM_EAkCXv|;JYfK@SH7a;;LVep z5W*(KeYKR--(y<`F!DztrI`;hjgP4?kgFF_?9}Xj$;C& zR==>Zb=guu{S5P_T1H~D$iM`o^zJ@uEn_~3{5`dV<}pEn2&nt&Hi9F7wBYGz>|%9f z&HKhF{TqlVoEKULNLl?^`s>cX0Ng z`jWdhc(|re5~dki0w8D^(*&jB;X~j};ko*i90h(nSD#+_jT_z1LE{^sBU5Z`8ll_X7#PW*7I<^?~DaU@gg_%RowDLh4t~}q^7<+``wxE+;^%t{FXYmI+=d? z_WkFj_e*-W?L~NP$XQX-ZejXx|DC&xr|$?5AtSX-im~Fg{>HQw2`#dcGK6~HMYn*(R?=k5QG^ z-lCFi0M9oztVn1sSN1rFz1TZKmKcW)8NH1xJT|6T>&Y||>Ex7Oe|u)sfVF#wa+=Ssg&) z-8Ee7ib&D^OzVl;XK2DYYySmq&)c;g-i7=6$`ehfI$TULwthX1uKHMhxGAR!&(BtT}aVmVj?N@!@dU5O0|040>t z;ni!~)i+KG0DNJ&X^k*lBrsD8Xj=^ikTv*2zxIRHnauUBe=(}p9ugCpO2twwVRZTU zv5lCu_NL~4Aj5z6y8jC)b|XF@LPu2^TbtX}?a!Mqm~QX%o){an-w^RUSIN5toA zL3}>EfUz3BssCU$Keww|OsGb1Hio0_)nn(_ych_`14U|V7&ac^ln^t7Y{TO`EX05c zC(0q677ZI`h-FA312CNaKIEJ-Mf}z={Q(Hyo%Nvnye#_abi88nGV&_A67-4XyYpCz zdMzHEg~-piI_xqTjZ0OHpA2|)6D71I90sv^nlbDNtwc6rx zf8zniGiSb-mrCcI<8G)8`631-Ff#xw6b-OEtO9kxMoA1pLMrK4IW|4%<~EtC11H>4 zVLfPC-V~mgEPP|s-O|llTjO?Z0r7V2fIO1(_UHU-KZAtc&1NnYHd33%=zU{_nKc3J zh~|WEvT`qUqhL5T4kR1cCL+(4t{e>6t;#*xjqi5-WbIkUof!ujYp_9MKgS}Fqo0$z z9LH-Jz8OH`H)CkWRT@T;&(c`n|MQ}8nLF@oWyg<q}~K0|Jaj5`oAg zQ28|(4rD->BajIi0-ywf6wrY=Ew9kn{2!KH1G#gzvte+X)CQ+Z`Ki6aX3O-XcTw?` zeyHSuFNU2B9h<9{_pEu?4GR?t4c11ZP$1vo_>Botiev~X;)8+DdjkX$A(I=Fvvb}A z4WXnDbQ144SDsDn{1id2`26I}g#*&6rhP*cia#an{v@fb`0`+i_b3nP_iMw1qP;_W z3E;r5p?Zvsr9gK?TaSE9aEA1XZauQ+_gcC_<$=>29ven?Z67W;cH_b?csmh2oRS{i z+cj>_g_DuZs+z$8#H(>oG4h2QqCMVnzDMu^^ zlG@#TOGlgxSPo(-KgmfTz++>gguBUHu}b&aYpfwL;`cTLtOXSGxG8EXDwjd98$kg#x zZXAF4+=X{^nz#`b%iKH42=|_UD42<=B<2MaQCmECt6@_f8(@5 z&=QEerY8SJ(;@dq!6V|?#ebAb*OOj2luVq&5j5^jXG<$46DJkY2`6_A0XLaMEE-Ce zhm?_b&1;-vZ%wS1-DDBjY4p7L`*{nNvpw^sKcPn0yuP#la1Vphzb_qK3G)Q+TeZ|0 z%WD;-V_|2`8Mw@5Nlie_ZSSGst3Vf-5|?Ut=CEGl0N*E00hW} z)pTlVym}xDtTX7&ywfL`RPs=$-80#5kcHed$Exl*gR7$Xo!Rz~{kuPfDX5;^^{~0?BG)<-C9*Dk2(`=JeGDO_ zKg5IWp(0O6(R)b|i_RG7DH)J>Motvy?R=HJ?(WCu*qf$UpJTu$+1&k{6w~uN${B^o z0TRzW81Ji0nvQLBwJH4i0HQBBv4g(UcRX&7+aK%JHb}sMJYVD6kzyZZLR2 zt|Jurqg|9Yaxz@cR$1;gx!wV;K-iWRfS5=nvR88NoDOgxxa7Kbc-DRK&(UP=&?OAl z|ABzPc^dtcWBCK`Ixsd;5o9kDwTU-L;AoR@%uUwK1uy~0JI9M0;RM=%qLcJ^-Amxx zRzf$-n=}N;*2N4o7=bpl78!TN{_tio@=RH)#2=+qXa8b9HeKrE78Vd+ss1C_(;t zYU^R{=r=~Y0rlcGU2Ch85(TTlC;dp#6}njgB;Z%Gz|owh^h5pVNm7?gESDu-84M5E z!4Y(6=>}`FR~iS@R8#VXUnT3yE9y5mIa}9P$m*Ftt{CVwI>U-QBtCj%VSeS=!a`Rx zQ)6x23c_EfpG!xkol5Ru+Q`C<$ZdGOUs{|WawC2lCAsCuVf2R9Xbp?PQ(s1}Xig3` zmtE|BR^U}&@{s~;?LV2i-a(E36cG_(KW185qi!X*JAQb>hPG%}5923t2C~{Omy9)k zLY9A4%h;`MaEOrh>rKg$^n#cwr=7b`o!+&ZrBsq?HrG1T_x9F1lzQV7k3a3cy0}N* zwYb==+p~DBOD`~(qe-{x5fSw+`lD)H_o}Wu_F+Z@5H3q*_F5m}8;|V-$zPP0$*$K` zR%-Nqclz|Z98gku#(NJhW6!1bDn$l19P9?vJl%!kGh^1)(E6oUpZ@a~{wo>z&lWU8 zg(2$nJc6}-M6JWBzIw+HFWJl7dC70I-xPnk>3MWzV3p?(D;{0%-vcSyN>6eAQXSQ= zI@CtI#vnL4Jsbr}su=PrT(i~&MYH^yutoV=tXZ+l+%byu*?j!`&p)$<=H^xY)bC#V z1wb2z)(s|+xx{|PxL!XnBTSLWaMW0H>-j)JQ74F8l7_M?l3<4ZJ8~IZoe}Q@yxaVY zI|N{M8R-rjyyV|0v>?n8J|<&k@fL#D)gS}Q_5$@`Tp`Cc&60u+~K+O zH7lG2N^h+ZG$KLA3Pjuwrhj2w<2ga*4hYX>>e7n#&3)Erkhg z@Ph{?AVw5iD&<9U4v(obl~;sN(=Ej!I{GQ!R<>enNwfCz++ut6dWHSefvQ@x?P-P( z3S&mVbWh(m8GMiWor%6FKDHeKdGL$%X7dOve-_add_@0L!q4dE-{cc zEXgYrCy#4gaTGNGS2#5{^&!pVCf#fkrKRmy%K<)I3n%#IwrPy14B{cjeDoWvr+kiQ zVaE^M+WHzej@WV3tP==IKmm1^$T2xcDp)x&r6FoY#}1E8n&u$xm;uCHOlnCx+?iUU z7U>C(_`+W9Yd0<^6%#jGy?PGQ;pAjE3f@*TB&Vh#=}gqrUM~0UT7J^p$f-+3!(p#; z4oT-~mEx-W$WQquY~8oHbV1`bb%J>Ea_+gy4biW+UYnR$ta=?&-)o(`qXl9HB`I06eG1MPVKU}^TswJ{{rKZNgFX+7wT+s5lEM(c zG;=z7Bt_9t#QhNdex6&`+UUGU0b-pkG%03#n?zo zgT-p9ao+_K2%}R$*oQ!yYq!Xb#Q9B4$9;2P`imS?dPNHp64!FFu}O=y(e}=Rl4_@G zIl5usGqBfnN5VAm^!otXR;58e`Cm*z?IS_cqgo;};B=mHbhVmzp2wM2hV>I``B@cZ z5^L(4!-{MJBy|FG13#V9c6DjpoNX?z_oUfV2oJLgfw51~brnNG4C8NL&dp)}7MY&K z9D8YlANDaeAH=#!T_R?;xg1%`mab+RX%h9dM*D12?df;cZP;A1n4iDu1%Cy zWw;W)`@T!MM4qrcYZf?F~&i{Hb}SSYO*2@WS7fx<)ZA=h%NNZ{(IjB0_n7)d850w3`8$&jq5E-7!Jhh zb%&pBP&Y7r)&^O?tL-l9%MfMVSEP_mA6UC>@1QFj@1of_^xnR`-^u9UXml#*=_zuE zp2$p*9znS>vo)+uno>HBayfy(od&8uJvxi{l`Bo%ygKBrvzY9?|69f2t+LPQb!>7h z>gjeaVl5Eq%LHWpc-xF9xnPIglf2O$69gZNxBVlitthkT%m$QUXz3O_Lpfn@vnScl z2YYk|H5d`Y>@_yKNNI_Q8PiKk&;E67{9rd~)AeN6*9$xNt#ZMCZnG-@WQ$(8;?;qj zRtqt2XN{RMp#KPMO=0nt8+>q&u({w5uD<*IU=P@@V~vIt)twLyjfK%Zu@x^Q}TLfu+zDFg_T$7$kjExbRoUW@rjdv3PaMH~uBZ!sAaY!dm&W zu=k>+`?8E@QKCCDTkiO12PZJN>rFNH9hR4HDL@hVLw#ze-w%&?^$l_L7KeW7OIXvR zOw9;|d44&Lyg(ioTtBaaK}AOlrV+Ld{j4(H`6+R~#x0}ewb z!BN9B160MX%1CmMB;!fH!bU9vawP>M{^(mB-Yl1*_&5s(6W!`6K}*<(RLo{^vlaun zvDaguPHlTy_pE8IP4F zmJbb;r@sUXJ>K*wb#nN6fDSz_*Qa&KazvD9@Vc{UQ>1@)6QD~v`P&MfsO<)9isa1V zQzWQ2qVLZT1L{>hAyUthLL+?uLg!a(lm=}a)2@Dk!XX|}VWwUXIkW_JJ+TT!gQrl^ zl|BJkumY*cYDukWsZIgFY=xa)AlU|#Daw^ufFe_HUjvfT57x2*D`9{OoamQ;<|dSv z^z@XF#RKMGx0k|^6&)_K37mcN0M%P?aTm@?BO!aj9R(tDK?Qei7Y^T}R-F0fE zDej7PoSqT%zpQ(y1}I&0nwWX!Ond(5kOx5D=BaCI*R{512j;&Cl(e-rr1h<1Yff;& zn*a&-p}?-P5^uE>wvJUO{`!6F7nqq5NHzW&%MHu(YipOg+i~~q*|v9GUi=TaPLR&^aplV;p160IGw?S(~OBKS@Q`@Us2c<{fJ&EoVXu^$OH8Ck9atYCjpzC0#jIx_FA!pM~=X3(!R%wDFpu`6=`oVY& zM;11>xD`B7S=fUsLMZWnM@r>_E~Y5W*8oJ11`qXUPZ03DJy*Q6;j-P?6Uk76@_t01 z0Ot_VzN$b$jgsYtvu(pxKsct?azQg=H`pcB8|;Y6aPHW}0PhtprxlZxv@@SdJ4(#z z4U_T~u39bY`dCHl&(?T+1r1t(&44KIFn-Ea0^f_hnpKu?Odj{ydKXUYA#G@fUv=0i z(H5h$VZgcn2v8)%EnMrrOEDbo$G96~`lAeUxXYrd=oRc1>+^P*a6z}|S{W*Uffe=gP>JECuw z`J;_`m2(y;r=db#QWeEL8QB!oALDN9Gfw?xFm2f|vAC1k-fZU|eZEkm(k0t7&zLSU zmiK)$fkbNj{jEWZj~^(IUmWUmSgik887&=)<}5kYXK`3W_WX<8%9YQO)4=k=IT!%vWi9bT$F-L>@9J%lg!xE5?5HR;NUJN2mnhr z1_V4_ls?Ub0Vd00qlMGD096>vNfk1pQiN;-S0wa#^w{Fog%h(~hf{Z(Y_l-2H@U-m znO60QXcV&hqWztUaPTIvGr)4)x!C0mGUg#J6W&I8xpB}4A#1mE-@Alq!rqyeRq>2; zX{Y%H25d6os|v3ID5?BINjlUhOo_h$3em7#>6db;`8xhiaQZKA{`BL#>wH&8{InLc z?iGQUe8$<{1xAW7l|bbZF^Yr6Es6p2TsO8`wYQoR>wl*xGnW@La863{ zZ)tN!J(d^MYwDD|$)h{hvf5E0Y}J$p%!uZR6VrE>rbzc_df_HW*;SgJ7$=Tqc)(Ly z;t0kt+Lb$*BAcL|D4$waiqmB{FB?>=FUH{*Bepe`_vdWmZIoJ-qEOefumqAe@0S_u zL1qG<_}EZ?Z`L}1-A`j!`bIKBkHx%hH@YcZA9Bx^G=ZcfL zLB_II)9KFIwy)&8td=pHlAd|tQM1N&gyme?()}j;Z1eqv=SR6wPGjAC@!3-=jDgj9 zr6*4VwH*D5yrc^Jn&!`d+? zt)^h3b?L?pI1XK7?_xI#NG?AcHZgtw}vcx;WCn24#wvpcQq;+gSmhYk8d z5@qJbn;}uVRmh)Yhbfi=^f67EXV00JN-uNTLo%K(*WlSx!kT@yoHJjKL-VaQPZJdK zWE=PG%umU0b+^A8_R5$HLrmIxfv?)@5m$OiiYJZ%ZmrH!w>nId{n8N$K^YTyB|&hP zrswu|)+Mxq%gZB4dzq9bM@5Wxdjnr?4Vbz#+Ds8wl=?K;U$m(tuY{CJ`s?9`wf|fM zemdk9Zui>TZte^*=}QZb@4vD~f+?G=6L5xIz9*kW&m`AMTb5P4r;s)XWh)q^E-bSz`5hW1iBRAfF2}#5*vYr@T}f?^&78)- z4@*G{!C-+Oq8eqt^1X#e(wD@UZtmN+CiR70$3F|*d~r5+*Qx3HZKn>64v+00o;-87 zd(YR;yAK+k^9U+ClAqn7f*fErwbd4FgR+fvboIcyn%?logSx@{#AIK5q(N%aXjr|D zhRHQ0z-qWW!qO`uS%qr`&1aoBTVV&|*sTP0eSjaP>6oHp>$IX@O;+zhuV(GD7$W3M zZr9x^#qszahun6%IH784P|oKw2#4HjJqTvAXyFJF*&2*K3PX4CrmqsNcdQ6SzE?J13i6U7uyn1o1#XW>bXjf=ROmXZFlEbw*G z9f32x3r=*~w-<%uO=rmizw ztLOW!k=gbM<))4EQZopO;N(qsu;({lcZ=x`>bK_-I*|F+ZPXs&aNV#-k=F$$Unapa zR2F+RQ%egw7XTQ2zhPP|xCI4V3k^nNA+D_zTm0sg^AZH47f{`c_yxs@0|BQHgploC zL@h{vm0>bT68*!7ZB@{lD=V4eUh~I~S8jdu@<_k^E+^W*-v6|mcFp)87nS2>w9rOR zRX|ap_V5Vy%-xl5!s(CiViCVQq=$cV`j-b5=(3TqLt}`y@6V);NAzD1@^=}J|9alu zJ%b%fQZjkllJV%SyU8!>&L@j2znHWf899>ppDgmn?`9LoUHT(sr3;XInoxHc4Wl%5 zH7YYBO6}mm9`(o%Opk2@Lo3304hL$9SgVXQc-?ob z>V=ay?Y$;kVg~dhHJ8E*g9KiFy>r8Rlbkr(`qQUDk-LbzO7@1Fm|a|$wf*@apHMuN7xB!x43G* zdBz;$ilJdyF2tGV7=*o_eR&>?adF`~Coc*c$-6eFLEY)o^;#!R(%!k@UO$0X7)0Sw zbAN;qGjL7!w75xOy%m1C3P}9Jx3V3!el+%U(P79V)!WxE^l*|J$04who{>(+l<}>t z$E7@vAR$jGvK(GXeS>vr5%}k%W+a}86Ty^KN-Xt6SO@h?fAT@$GG~Dem*JNLo^q?s z>*a{AKIm~7iN{-V{dt~Hm>1u#cjR(UJm2|L{i#!R4X3pY*EmRy=Q^}DoqGi6u7i@Q zqD1QXuny{p*iQ{?i_6p0sL=!I{{y_e0{>om(D9N>!(n zcS6Vv4~FC;GETxcw=BA=W|A{kD$_gd&Pjj}=m=PV$zEa1U~mXwhzyahnB(>UO*C?< z5X7(@9^(-RJg`EdLxzM!LkhgjZ5D9+(?#(STNxem1cu5G2va+}uiF4cSF5fJr+DJ` z|8-5me+?sQ#j+D5MS5PK;5&-ZTNHl(K_B#q&Twlqoe+?*y>XBp=hO*5NT`W zUgYJQgjcON*&g-gy)j7p_B)#pIc&SLDe+e?vtLp^q})68BpJo0F&zOL_cuD{af$H^ENz}EsyTZ z7r-&A)tVT8ll=dbnNj{p2Rvx`f+UtZW}%?#Huq6#Ed@?M@zonXH8D!x zjxT`&Hx;VSnHAIE_;Oe0;wcoG9{c3)G=EMwKCn^MD_E)v#MHYUQpkXQ7JImu9bZ5p zc6H7Ijx*(tK$x598fFB30{i0qMZ(ftyV*akRy=((YJ)tP0Al^rI;WxotIeY`7Rauj zL{;7Inpbpu1`$?yz{jC~V&Yj$b;CWKE1_4ADU4_2S?{)MxSLbVj{TN^OBhHF4$58g zJ;9SF$DA25!;Y>KvNeMxvY%ND0GVu__`7#!?)kv&35$2OdlJ0j1#exmFwBoW_~})i z9-o~ANvm)4QS!{ufBl=2wD19BY-IAV0YK68N=d;*uO`|G|^ zHJ*%SP6y6d`EAu|Lq#_NoT0FT)}K$5T}kQcO1W|$fgrpi%h>%C9Mu-@FT4s289`cE zPqGz`0wA-~>fowwc0fH~(CgKD@?bn!0!o>7`Fk3QaX4R)LqSRQXH<{ipcE0Fh^I*; znBX6m=RvK393)$T0|clS|A=SDr;3&28+k(J4pz&_K*#VP!IAd?^27}3dooW5vk=!;(_P~C#^nlJlt}xzNKw&>9+Bl~_ zFij|O1Sm%~`DipZ_EL7MB==DL-dR)0?r~>Pyt6P&;TA{UXKo*JjBS`g@dH7eXovxW;@Zw=Kw@n#{}Z>dq^C`?KrWv%k2o*xB}W<>&wU^ArxN?@8<} zDg1waL+RP#FTa8=RJ0C(m@t$zHmh8AaN^HhOd|H^Ve1X;zYBl?7CU(4X|W`%8$R?V_7=jCpJOGD;Y}M#B+`eZN$H=?h{be_$zC zCV1Q}_Qoe=zDGZF)6RY^h<&*^0Wsk5$-pdQ>qH)XD1Yj3VHTRELUGLCt;cdtt|to; zNaJfgq8{;rlc&LR4+Ia#L44$kp@d4H zk1PDuFFSOKVZ1oxJzj8?a=UvVi11KT3AHF!-F;ZO> zv9sXa;mP7Sc78WwwAid&`qN*llt zRtEq|H?Tr`M-$2>8ikZ{ebPF^cRa_M70o(=k=J(o4dLbKx7-VA0P@UN>t=KWf5u5bujufEjp?L{W z2|?_QbY{3GyMS}KA|_T`otx@S<|xWz=R?mYXjRDAYAO=J6*}ZA5}S3 zjR8QfjWL=0PfGfsKGj{h=yJUBD6fbjK$;7hBhy$8R!}C@Q~>nM{+Fi-^kg<%QFi}e z|8TEQmYoPk9u#ST_`TyyK8uNNou?>A>jkr(Y`)}O&mp&zG;eX zq1B8_4Z@)8Ffm@@xOb<-d7R3|{nL!WcDNu+=qAD25GWLEnN^wK#dYL3i{r(_OqXC@ z7%#CPN1P0hwWlW9O{6x&uz2Ktb6RXOayQZ=kVG_rtk{-`9L2j144NB2*;twH3(D~1 z#8FDZq>Tkcmi@ZBt}mPDD87(wUWuDR6`FEP6EaGJs*&p)0R?N8-pCzjw#dnXF7!*a zF2%W8_@Q^(oHc(Y)oKI3@lQyN$za!$nkkbDogp1zJeVVP?y{9!+`i&-tMGt8Nir&P zKQzS3gaE-p?r}iLuml$g`;Wqu3f~KW-nb=`xEtRl0E`v6R2~}^x{hW)&>zzPXUyIk;D&sIj(pM73-|4F zT#c!u=w#s59cPtlZ0A`S>H*ZlObe?+Z{E0gGY{MYRK(d%EI~_<~ zII$snCWG{(C&ufEV^H!!B(H4imW7+O?WeBIA86q|YHJn6r4`%oI(>ILOE*O^6C(MA zI}6foZhdYmL^l0g>T%xcA}&6hk!Lary2fwtWYEo~`WWs#6xF04d1i0VJ&~&64tsxv zbYI|bd|lT0d@Jc{N@g!?=9O%f&fTbOo&J1oa69KgOLGcOTqv4%`|NfqzFSfJ$hd;m zg4C(X<&8DAryp`?}Zr zgO9&|JosHfQ~@x2)uC4ofE~S~84_N= z@SW3qlX$gYHrjP3vnj2xA+mb`As}`}rvyx9^z>$(;^5#3K~20qO)`}Q8uU=R7dvwa zpfJaVHn2Xy$N^BYmdG_8e^p_b2rUX^+OXWRRQ@o{MBNBJ38<2%tAie&tE!2}`$6X< z3JFyqI0-C*jHdd6hyeKG5Be*C6RE5)>uN78wlTV5BtEQV;WnWO00OFQhEeEs)YI`X+N^{jwl&AJceEO9~e;8 zL^YpOd;da{-8|3~_GFASHr=Yz92uXBX4sG@y}d>)Bd(r@PiQAu`M)QvyqLzeot#Dps2ZhH>-{^EiB%!CpUgu##A zt7ci+8)6bM#b*b+>m6>}StKmsu2&+|NPEx*a#GU%(NZ8BG0tCwR++b6DO^5fi^2_p z6j=(U%28PZLtg}aCjo2lxT*g1sozeWswYe{rU_9Q8QU^5qK4(%$P|B!6obB(8E?CfVUGF9h5hxl-Z`$hJ4(AJY;`{LWaLceHg2EvTZn}CzL*%L>DC1C1= zbSfhJb>!Cfdhg@&xCjV;`2{d+)85exdXhjKOQoQ+K7{<{ z&)M|gfl*TdLI<73Cb>#6t_r=@d2615@rCV$enEU4RoS7vA%2WN?*wJFP@;XWRi8yq znxeZ0&TC(3g_8cNbKBazI52l-q%hilVZlGjW6d>`9~oAd9Vv(Ag<)}#p@e0RDE~Y6 zd|j{YiyUdffxT+m&sCRPn{2-itpIQc8PEpOVvbf33;f7MZ$-;T+(!i5upudCK=>=2 zi2nk}&0ujutVYLtHQEa#CDD5ns1=Ytbv3~9FxV0Gz=-=uU;o0&`!?baeBkKcyO}u5 zk95KF24_;lm%pAtkA-(YQqqxd4h+<ZsQq$rw`aDRXI|S0UNx<0-10{%;yL5MmPd3@ z&)fJNEih(FQc`Cu#R7;#;lgefx(td{&{U55EbAS<-zEo$as(n8VH|;^wCo`YO|J0c zQYu-F*X#D&`nlEtfpY5(Tz35X>v@Lsrp(TJaJ+n&u(%P1nO^v>8o$xf*l^=lcrRvU zrZat7mdANBMm9Uq4^PYk4WZK-uCpCeD&um>FHu%<`uhP&2MJ(t-6EdW2V$6BvJ$fm-9fwZ4iVC1i2K_rf5SkWkWJ$ zV*wNtSIN_jFiJ)T%F|VB(}VTE%;1s&Jb2_qig*C|02!Dols!4YZk_%Ya{2%t8x(Xn z=R!lYY{hF>s7WDfrJF{YOro-TQAn9vQaPX;gO{M8hrHe<2m&bG5umoIgub?!-)N8$ z_bo%?D4#^ZGo9zf_nqIqXh%tkrh_cZPIa9f1)z-?24IjpzOdG?2&ow-Kh)5u)qI%N zH0sydfVk+zRtau=_|+>|;6~6X33K07sNFM=1g25Ujm;;Qx|AKSj-RcTZlLT;f9YHO z(dvDa7Roc#r7(@;^ZO}AK9tm-Owd}G4G@%i$P-%8uNY&)R>+=eixn9)+AY+cx^9lUb6s)KswQlA^s?2K6k$_!BFD$o*sia*6>W zse!~leVo++o{~dy(o+Dam&KKkvKI!Hv*mKTU^4&9uS_#APmn7TbH(u@&%l<|l6ulz zXk^EAzDsL^)#CB<80@^)Z7>-GF#6SNE&ZDH!x^S1^n^w(IM|2L+Tq7=)d|`cZ0OIs zVu&eKHy<7!flzV*-~GGn{2s*<^{Qp_XOn}|glRjwX&dY`-p+bDFBH{-4>3I=WqW=qGPoc39Pikv!_V*WYl_RkP?ztd-+|w9HL9QxcEzU-?o_T7~XQ4;E zPa|+vKfLY+^~q+JIrWlssqpWdbUAIU61}9gHHUnpQy74BnNU zkB4{Tjy<%+h2yN!EleGwYrOQlU0Vy<7-vXl(N$VvWw3f#6WZL@j1jOhp5v0w6BZzl zJh|bM;JVGV>BD{9M;1Faz8Q+QM7W~!@-=%8>7h3pJ1XAYC4!-?@MOqAo4l)e1`dcI zdw()&zUB4$W*llg!Fld8Z7E~Rk^3y`?ROC?LrU4=+?#PdzhMu}xMh`fMAmG-oTbXw zcLFgY#p&4oMw0GSzUwkb6B}i6miA_@{*j#I7 zls99QRvL6Ic|5_^n`xkx1ucc)NKxC@N`_xPy6;H$$)#?`g!z4!<3c$pW7a2TeYq?noU1w$ZKro*<9|Zi{wz{RRqWx6%Ncq+uRIs&<-~q3BtCA zD#5$PX6ZU6$s6?RODo71p|3-sRutpx=88z#=SxJi)*{1N$$N+dAyY^y(rtmWwqQ+9Ed#`fIPJsH%Z@g0^ua`oRQ)d3&*u0Cl4GFxp=N>D52kuK>}%Ht5Iy7Mv{>c^M&+kkm$utqqXM*?&sf z|7qZx;!Wu+44U9w_DO47<+aAlMs+W@p54jDQ$YB4p{pg9Zz)@X9{-}a_3O*)mWM@8 z|HvV$tsV*&Oof1Fdo>HrS@rlI-D>a~U9SBrS$l`AV!nCy^cuZqDf#Ku(y>tJ<;j5L zO`(O$yYI4{-86B!Ynm{9)zV$tgTf9!B@&D5J6gekkCOy@C%Os--p=g6$5T^$m?HQL zUfMXjlyqb%4*&QqbK~Ta@XQj=_VHhDzlya<2Ly{YmAqIIt+G%?M%{T{n78?IglX%Tyh>j8Sa zl?QjWQW(3bVv#$9j%O4+y!W)U?u~Y1ql8O$+9<(|2_L4E9_}qhO~YeAiMoY4dx`IF zc7FGd8`Wy(=JUb|N%iVYI|2^|+ZUcZX{eo=I+-d4+@v8*ZdD;t1Lt-4<+~&0tRcVz zt+V6Tg-jq&bBx~a#!ORGXwE<0`&&HdYT8vZMtfwif)Q2h0$^)zm^2L*MwAC6x)9tE zOGIZDamhx3;6j%&h$oy8VlLB8(mJcH*kASQ?SYf2*=F(1_eMIED++XDzN*YJv zab42Z*8IY&Ggy2?gy2Ka_oxUveCM8|q=#(p`la5TEvIG_%Y?F2odr4f7f7UA7@_4> z!br)A!UUibv9;6SZSfjATU+h2FKEj~L+!Hs`2D<)VcxTtd{?_;cw1bPU1*?xu^=It zUd16su)_mo{J40V#iZi*V%VFPd!H4K&j#c){aQ2j1gr#LEgFRCAfg+G^bIxjkhG+j zt(-LqhSsaV)BC^!P&5NICgg)A$XN8;Va%aNU)gSypd|Ewm~*LDU1o`ANBxk<8szNX z=iI!ms$V8N3>&-37(6WgK+O67=io2+-|s|7G9j_YMkUN$ zo9_i}FC6ZZ%VCQmQv-Mbe``Obe-F%=RpJwF<=! zi58y-ID$Kuy(mhg+54WCp!#;dBz-pd@w^n zjA|RAMg3vwi|f+8W&yG}^046GH&19!o*Z=K3FIK)=~Gh^P_rWf6STZM03`2Z>yPIQPxBH**a^raQ$t?V}z{K*3gSbP9S_ev7-t-ENlh@ ze98^u)Ud}n`??;H_?suYCVa6{u)TS+^-NjIhNa0D>yNCzz|^yvwZd0g$~sdk2?X0d zki?2P;(%v>H5{K*D?tWA%ZG-VT481mZ1A|!X(ZFTu@xbKTOENlY^zwLY6@!<0F9F;CFe};s9<^>#6%_O!DCL0Ied?9o zPcPh&o&wn3^a9|!lFkBvTU$WN_Yh55RXfQL{Ydn3gsfxY%S8-=5VAEkNESlo1R#yO ztq<=+R#hcR9eXv7->=?WvsW+2Qj$AUs1b;krv$`{FT>99@4L{6ZakQwi`+Tv{ahfS z_7$JVZ@9NytuvL$7ozr*O)+G!1fIlIu1LHY;>*fQj@zIgxf_ z4gOis8^vs-AW}ZN2Z6u;e`Vo{&!EHh_P-y@(VCi*|KP|~Mw2bp zdF*$lPMy}UluDM}rx0{~LPC8IEXCI+Ce(-ELtNzw0UsqS6J43i=xrPtm|hL!3I!<@;37Q>F}9EKu33Lv~Vo<3SD_sRW# zZ_#zlbqQs1s9n&w)n5gw=0=n$~)9}AftaB)8N-FQd?;$3&eFN)#jN=#|c0he``Uf+F zP028T_{?nHtLKOLy#OG#G2p_BKNE7d&_who%7FSo$-j!_8Ic@wBu)8!N=qho48WyW zyHP$I^Qr(Zf`>m%s-(7@JZ~*i87Tl5TE*$pmJM3nO%a0*~VE%Fg2% zIjx^;0LwMsq;{o3gg+atF`(qL408;I1J1z#?R%ljN>=Q<-=WOXKFRPf9A+{A6bNE0 zdx>G`mHO_Y&$ohaXXdhG=SW${<_@m3)^O&NCXesuZ}K0yI=0b9?wO^9-MFDEqHQi3 zQqfpTY-^UxTCc3iv95?#8LG<$?3F#Zu(n%t`(P(_}DWq4_6T0tH{@dy9AMw z^9$G*fonB>Aoa@TZQ75UP%cQ=HV4L;bt2!CMV*J=E{}HTSTD5=z`QBjbfb+|vuncw z8?5KNulG-b9aclW!}E1?bFV1MK035Nz0C3Yg_uk!3Iet&>}lL_cl~ZdhTN`&y`AQM z3%GQX!+1HEK?3~KqF;k(Qg zt*(KhHivGFTq1Z`Xl_j>G!Sgh@`=b8?oLYIe*Q$&%mymEO)CHRM_wdKcUZOwYa=k{ z-CL`C514NRgf~n7@`wwnf7jUxHo>QzSa5uw*V&)>LUaE06?%V2mh0kYWtuyTs8XG3 zyGHJF{R=@6nMG+FKbIZi^E?w7(M&-+@7qqG!YKn2G?m(k2uzTn0vrr%2_Hv7okKJW zGz#O8s=J$NKPrHd?!783pmx&!_sTdqnpR*)R^~N`yd|AoHA6^Jp@Gb$6IhUD=cTziY>pqGZ3Z$3kd76h8k;QD2 z@oB+cAcV?0gQX{O5sX5LWN)>2F#RkhO_>`hYiJ*x&y>AS?!V$+spH|DN8ayi?`CAK z2cR{AWJL2h2o5JnV3Qou`~gAu$wgz7I253Yq1H~>E5#^bOe+yu(^JMvPv^gC&N^zH z3RLRI(@08+^a4>(g!aVf=AGtg54BYt1ClsNhs@NppVlF+IuUbj?pT-$EEBK8$01^3 z-`cFxhwV)LWU>Ja55>i@cg$1~V>%XxQB)F(yd>_q&yEBh#h9D5V8rYsTO|X&zb)xE zZAXA^z$9;gaw$a9l78H`W1%!d%!AmSj10Q9k=eNGm8)HMJw5>u75mnPUq{UO-ON~^ z`4Y)trvttnCJF+%Mmi*i<{Vd2-Hq4$`oE)d0_4|@nx3WUrEtx>Bm*l~&0&*(Q;kst zrHgwKDMj3(8Eu4wG6!Qz(VR)yc|#*}(#xplu5DHp#&SPGzZDsU8d+GjxA}=I;!sQJ z22{(%RIlHb9h}bnWZv|WKA-He%0WIc9qaOp}}yT zh7x%pZ8!B5&!QJX#H4`mBWsQ|U(yt>xwZFn zSA7Sb_H=Z#i>}k$W3HdC65XJYy)B6tCfc2G&8=!7SAYYE=o1{%a*}p=cArgVmJFxTZ z_UAB39<{43Q<7GRwErW&)fa=hAE=}_**{tFlZ!2SNyFv)X_<|e($X(~!NC2DFBxeU zGmAV{L`8QzzVt~pgVI3Dp?N6eq=8XWMX0i(9OU)(2Dmw)N-f+boQz^rvYk9IMBx$w@QQ>z;1XAhZCv8ViZ~f zwK_mJI5>E8%tACm!4QWsFpT4u4Il>g{NabqAxEz$>a7Y1*5Y=hfYb^Zzr~pH{xlG| z`}C#Ho#Nvt_fzij>+aEY^9($N=<)CD>OD4_C#PYz???Ign8yoUgc3we*d-E6L1ew_ z5*fwN4Nitwcd_q_RqO#@t8npqIYQNsG<;P?W~eDv|3ric4(5N64_WUfdJ=kYd8VKN zDa6YTL#11KNbznvlaa@xZ@lid}~jxCP8v8hEA=cfY1*=$8!(EoJ#wL|J~xt5<$B2q*vZPj^meFp2;5vEJNj<6)5-5rn+4E7ItKJ2c)VFZHc%VB@B zR0%>=&^RR2Pz+WP;)8fKr3AgsVU8d%rIP7-V(&?N?EjHL8miy~SHO;` zz=s;vE~PE{Am?8gF!v+j*cDp{Re`o64g~i_BXbyUNk-nyE>^}DoZmSU0gGgar&!Vl zo38V`1XDrYwO*01=W$f&g_qKo6{BlwyegCHLqNez3KNqBl$KTQiE18^I~-csu!0V z{@0U@5EbX?hP0WWS9H4TdiYEa;00Rm#vT9*C3TGd}UIh4m%B5srIwlTzoKu3h0bAywMpc%?>}H zJ46=Mzt}6VUak3Jz5c#J=wAS>e;3z6Z^4O{)63thI(9Y@wR-K>N$v0-EW9{hEN1-? zP821dko>7nmUGe|EU|$B*{DTX;W7y#*#!iu%4T5x|o0aT?m~%a9v`rYm^f# zIt;u_*K0l%DCOW*STL9L3iZ#6bicAv6Q2x)QeCOGco%i}dea3u7tUep z99e;M`gkX>c^I#fBk~5e@(6gM6L@6n%)PfTtfSIDc=va3b3EPlaUYxPsLa zB##cn8^O6g8cO?yPrzj^*)>&;T=DOi_q0+F614LW-{F4)IAd@<{(bSC()z&m2bSVH zNw&@ye@8wwvwoed?aoBB0zCi&MY`FU4iv50)3RiTt9Su|v8GcktuaVlv~2rNp_Aap zprV+bOr5jJYw7a6iQ4K}PBpAJpxZC6DlI`+_$MT=i(40Wa_g&i3jx+Yk=j3D%8qwj z(0&RsILV!qd`%JLjL=BxpW<~oW9+g6laUJ6{)cE&upXJwk-?vkqh$#+a+2moL z5yEf<$h9C5!h#C{HyL(w@!q}xfxxZfLGJ(ORl0lPcR!0;agtl9rtw80f&_^L3yETUW(Peldy}f%9Fite4cxGU9+f{RJKRT(pJq4PPS+{-?RP!|`DGj$C z`?S*>;O12`A7p+dYRO<=?;R2`Nqz0|7$_VnFOuc4R2E2d_MPf(-2#2iEx1F}0Pci@%T4TX z=9~)6RYs_e%nnp$bfr#psu8yYN^=c3!=pG(uB6k0yB3++(G+yU$X7!Lr^ZTck<6?FewCF&vFLELkoRB(^uWt21Svy>x5KpcgzE! z3p(Gj#TGQXHWCQbIcShbuF__ZYdgiMI$Ne!$G)8G_wNL=Y2>dm_e!uepz@{wyMNYI zgJ@3i-{I-x6u0t9_g+z$Q~7MKB6X+8f6`P})Q+TnZZe!)HCr9&+s-y@rK(7UEY+J8 z^{ZKhr&U;ezP=YL#!2;{5ru8UcD@e?Y|7h+|HdXoOn2DU5ssn1=$Z;qV77kk7ugED zwLO5JXP1=vyOUjK|FmaboFE8y1^z1xjESLYWp?w@miW9HU$(yEwF5NZBkVWXR!H|%S>@V(Ng zsR@yS3M(a-2ul#^my}%w0qbV{=D5#h`DiLqDtdIlG>>E6C@Sq)ol5wg1T1}~5W`*2 zdEB+hWv+gsWLxd8xI4^$x5l(aX0*pH@6#7-#0GmT&i{8R9I)m|_I<7|{2eAIY*S>N zRUz5XKC-ffvD{A@A*=rhw26mq`&$y4x(YR%sd&PE0A)MkB{nb|@Xoy^@cudvoS4IU ztL2X@g@}?HHOm568uNdm_s~%$ivlW!*BAeu8S}fDy&={`5OvW-{2AqNA#RLA^F<^( zTln`@_~vYm>h0UAIpb3h1IWyKdlcMx@^?|TXS0*0H1K1m6S8b_aAKS7ye+dYd;MSkQA zp%Lfhju+a=ek8O)-amPQ{K-f~s$D?ntoKi3J|XWVDj$g4j4n&@P|CTMC2y3Po0_I8 zGvuYN_@OQm#&p3?qZSry$qz!**|EhK>cs;XluTD}3W6RKc0U_sXw(y!yrvaJ6hL0_ zf$VFRR+KPKiL8z_AjG+OqR6y(aKb`mb2G#dVm)SmY+CUVt7#re zW8iUVu;$sZ1FkkNCqI)7dVZrFX!p4?p z*OE>IAq-PxQtn}^id(p#Yl|y6xF{cEhqX>Kz_Bh6Fx!q~feE`0e?gt!wg;$UFwx;zUX} z+;I{LC!q7>cLQN;FW@bKM{?OjB(UqP=kE3KE+c$10m{>Jz{r}%MQ-Kj8JKU1n!)1M zV>2r}3aAUV=a~q?nga>*KqPG0Tu3cGl3{V@k!kkAc>FXuW1rsD)xAA%`}*wTZbiw1 zx?c^f$g^?y;7g29bJ=m0>P^12|>WTk%CdhAIePF$fMRldu-K6&;O%SCo0m zO!2g{YO{gr+%^-WHuIetfEc2D6l9+$ttKj_v_JShk4*FwtJY5`C-t(roX8LV8nHf0 zI~DxMJ5X3|_8<>X!%@pB$VYP zbpM+mxlb(prrb9_&)2&>$2)Oht*7pm*ZwOXsGaiaQBzD=y_k94J{^}icc{Yi3Ikvh`B2oC!wt}ZGatiMtjnn;T_?Te)rjo(5rYw3H=_~AI?c02KaMwkEHn4)g~S)&jaz1P&OkZKK$7HNXJ4qZ>|rkNV6_d z|JLmqk?TYTUzA_k%k$GK?GHQbYp%}eFPD1gPRtu8POr;nHZ{hHiP89u{ItTB2T9Ud zK_-=0rna(m9-0#SSvn=J%W6Uqcfh>Hx0^iW-xFO@M3Zj~B8`Mhl>BBovbWN>pj2Xf zub6vSKm!4z9u?&266=i@BuL%hx^$_-G zxQ#rR>opftCB>H9ASU3;At2<*tI`JNW{njvsxXYC=!9AfoI(~^aETF5zQ)z>gHs+> zXzs8oFr>Hk-9GfPEeU)TuMcGv>0%yL#>m(hN7K|Mmg;deU78TFCg!LA);Sti&TVaa zUxrL*K*j=c_oDXEPZ<-m9Iq?3J!0jWu7$vLN*Sk9dNJ#AU;g}QW=tlQVD97eR zETFyGO*vZ$;WMdvAKmp(!UJAKsski^KsTVc63j< zry>qFp^1oy&XtwM`XF6GG6e!6c=`y^Mk*8zoA;R+3j^ z6n&L1iG6>x61Tr;ma(^-S9ia?=YfwAtmyoex2)6n=7 z^oCJnS&u(8NtfMeSrc>}NDBNiIWaf{wNsqJ1`sfgEn)P$6=nXeh0VzrVgUP$g7RQ+ z=uRI{-_V@aj2hT8HSwR%&d|_Ka~fU0cm%X(kH@K>ni?2DJE$VAlLL}5*5=gQ?y>-n z);J-34&ghlrGaqnin0JkO9VuhPr1%=R9_q%T4_$F>+46*gHw}JLqij21IcCFGlU)| zvZfUv4`wE}`wZ_K&ebG)BH3aqs)w?u=5tVA(GB!Q8rqXQe-6ojw=43z#t(A&(<#a7 zcowlF)#96UJY)$c8lK{Q(-6_WD$G`oN{`quZRe#S3Ss~*YVA@9OB-Y3kT-Ze=gR?? z3khBJDhK-SSnGHzgXev$8Eo$;^k&CKwK?nddqt$*4-0=3*G4`$a)NOE*5JXI1h)wJ z9vR1`Fv|WpT^3>ki-k-d*Gcld_*bIBhoEFyMD}Y1O24oA!INrP*mN1E%L(x*0`dW7>zSu{wDRrpegUB3XsNWu0#kEAW#sZ_nxT=6S>^d!9Sfi3RFuOW~Oc_B2 zQJirwo4U`{JEzOzq2dGH2Iv1Qy1JBe5UB4*l2H}N2sNfq&L3lSux+mP2G&r&9zkhb zJu8ClkrNT8S|U%YQ3>^4Q^nJj1&t{lIbGhantct~?r{bY!xD3n1ET?`H?-&To<^&I z*^}N`~HrId;=}G{$1iV&Kyt1y;r;x56f8ZF4Rzs?~QFBiSqOIKgl!q+2?BS!ZH_ zlJoI4a)}`X+zV8<5qv%VhXVS*CMk(#eP~3%St&R0UXV7W_2A+1$aegsTpm>}c-|?3 z&RxO39K{ycg$j_bwnb)Gn;T$-*ZGQVHECnEB^1qnO-5f2T>dJr{;jR>_m`Tsv<1)X z5yG8R4(hAi{4)1kQHUHW}&4s3i=``WXQZHTi$-@*bRJt1V zX8X0`*mBNCGAT3pQ&(@{1fv|ww5O%%>a+xVY>QAMLm!rlODjFMHd7iJUD15~$A8ti z>2zAM&X{~lzK?dG;W*+yunBCFgFCF;lvv5<>-~S=F6gNr_v#68k*qJjel2ECFPk z_|zv~iu1S#OGN38qJv_LE)hK!M|#4^x{4i!X}&o;-hV^pAaQ$=vMghDM_}sXppE8h zX>^emz8mUz0=Df{JI|RK!NZ^)yf?8Va$TSS`P1%*M?Sz%k(bYnt*NDfE!9V1pEptj zGrHh>$v#b`B%8kuwz=^CD&ei!zb5~e9L&QMnrEotqNLD-dqBiJBd=cd=K=DRKyk2l zcLvB^(qZR|R!Xaj&XSo_!@(Y8J(i1AswMnWr%2RlO;hA_J%_8*z5ZM0ic7s)m0Ra} z4@5cc6@x=yhl^GaS=YHF5NSKLO#-PkhMrGXF*LZUZ|eYHo$3YZ__;nmHc;`9a^j;qR2j!zAKvMoHO`)u z<_60UAE-CyFL+}d{`_vjUG6g6A$@r$rM@-&mvGb1ai}L1pBVpl*jctrGW=04PTQw> zuK1N#r#~<+@jwz2cQp0HbK{rocD$`kDmyrL=D(iE{afw_@7ib8&bM0olj)re6T8~i zuGo|Pm}=2}I~mvHlFF=WXuS8|PPyqGdF}dhq2_zPbXpn@e1tJ@udI{v`JWB{XXI;j z?9Y5$?tEcHd`kJYU1ovX>UzeSs&6*Y3aEdGcL@t8K`=)GE+&}>Z1 z7pZc5M7WB^U#J(^(qF{fC6@}{di&_1{#hEN`JeGRV+>%F_x~wt+ZSAO4p($#4xk)a zA|B*{W1V@^PK{ zbXidfG$cprj5!|xhQhkW=A z%9v&3Jbn}9it}WrD>9nD4;0}^fOh~*?uE}2Y}H^sh7TIp>&{|M9{KE?Wo)!oy-h_D zxcoOm#w+sA#;QueGKfFLwQ~7ev%>kzdn3PHU^mpxdz|$Efe|T)X`gq`P}`I58vQSD zXyi8<>JA#5kV^ps2Nb_QEd8KcmZ~xNw!w}_CGt;{ueX;RZ}VJrkk07y_0e~e6LZr0BV67AvK$+N|Y_V9A6Z=}^;auU5v+dk zs58@@^&)XM>59@v?zLWeS!`3}8$0v*)`ac?KrtnM8{)l4_ET_cnQ_Hq&*<+K3I(_7 zF1f64?ZZ|sY<}9Bz_Aj>obb+yU=gh@%ObQ!$JGb z(}E!>^j4;n@s#2HzhYD5pKWyHj{CfEi!0xYh`TI*i)n5|d{}WzTUE7AwNFKaRfWIK zkKvTxQGhn}my`M%9#>>#U0Kh_hQ8u-%LNb|gmX?Vq)(S+-w3z(IjmseQc<*rz%WhS zSg8h;9iEE$+r#6OPvun}@2aNf8a~03Q?A%kGWbSSLcDuYJliWwp;l(;%~|ReZM&6M zyGzTvcCCt$hn>0T9j%n7$7ZTx1o~tFE2I5PF{_)x7&o^00DEnEGH8Vvx!wL}7dSS~i7XlCCfKM!asoVnc^ z#fzvKVyJ~`phr@?QS{pa6O3l==6=4@zi zlf^Q>IS~dFwrgZhg+0j>u8*vt)Z^CyDd0hW4v$Oo$df*ksE?%9mcV6E{1aPFc!Lr*3}P5R2-S%ZjA0bx z_@#oUB^UWKUx#ZS@_G3#N-|!*WNlZ3j}(inE-^R|AwvO0j%c?I(>dh#q8F>uoH&O< zw@A@nxxWk!MBpfl%cC|)1-gd~Y$V)nbk0)nS26L4jK!zf@9prDQSgL$NhFym0Vzvc zloPWkc$~L@KGsABU)6_R^y3Mh+3wkclK$i#mWdH6SG9z3LP|#~5rhy_$p~q_taJYp zk^hOZ#LyMMWlJ`J*)LZSEIx_*7c9zz)a2#%>zq+|EKOjwX8toyIFxAhpJm+9gt3RuoYm{&GQCC^1Z+0U z5Y-2UkPgGqew!8U2}R)Co*SD`92lLqwK15;*q)0|&ldPy^=5K@JvgSPH#$ppMAeOu-Mf>oTE(4rW3$|D$2G8j|7JJv1{PadV4AXX zXX4{I+sZQ&!=~w@ktn#a!RRjSXbkVenQ&BeaU5aV?d5dt`h*nKQx0f^PdnEX zU?x{&cWLX|M`x;{S=z>3Kg)N8AW@cRq!!DCo83_Dv5OAXu#?ZF^L#pJc7^THH0MP_ zGn!+W(t36T!7}lhDD=pOrTeLTZObm;dT>}TX7_SP!zVtCcE93{M}FKD zY4>#w-$)2Pgd;V~zD5%VO2hj32#0zBMv#Y+LZeor7{rN}lU z8R4zp_`5+G59RjK5u+si^$K!r=6gLLE5v~kp-9^%P&pC##2YEMizEW&&!$Ny!f};8 zA;M4 z<;g62i+xNP1O^os>)8}Ggv+lL?k~4?P|`egU|K0w9~*Gax0c-W0jZ{&k4`l{WLC;) z6!sXs7#7e6<3JOf6%faz1&1MI&F0BiQrMX@M)3ql0%--SYeM|R0$i5^4FVx^AO|9m zTUdzSuC8+SP+knSL}Hbx)a>X&K%Btv7MVZR8d1W}@kq_RA39AH-Okee_NY$QH=#2U z{9$TF&bm53%!ML+>qUYj-cfCcGbrSRa}Um*RK0b(UTbZ&TqCzLwm+B*v6Yv-CaIZu z23OQ>Yv?4BL7prMoBXZaNA7cd6Y_nd2&1LwM=&jlIDTd>c0;NTqf<_Ico_8JL@+2o zPyt-_r+Pg+kuwO?rrfJ|cYa^c|3;3pwh;4`ymeSG#rEV}k*ax>Yyx26k>FyD2uiDN za4R6*Lo!rDjmDKw+SpKW2piNl3(fr1XCRx zF8s8t5V__vMo1GY((PH{5Ne=H>+ba_$oy<7)i4gi+tTja@)_JN)fWc{-!eM;aQys6 zC(aL<9%wv%mK7mH zpWmggTK3O-b?%)Nvj167u?-;5g!BhP1C(05>YAy;ddY&~{y*H-0F*+Unww&y+4pO& zg};YmCROxP*tY0_iCL$3c~n#?2ka12akKTSi0$$bV3oXB{0Ydi5ZqM&Di&@rQU43j zt>`|64e&#WT03^ZFjXwy)w&p1YA}$eMRz%~2IBV3l(@)by1R=7=2}G2Ns&{z zXam7JMbvShRnxS*?{sUWi82Ap!EMr3dVS;Ixl0^8IxEbbC z^7PGz4sXI47#KaR0CaNbM92to7)kAIkc%|CLL4iwbCxy~!-EZ=usmXGz6|NmcoUMP zeAx=*R|;J4VzQ>KDuh(SwLQ~143-87Lk!(#b~6AKW9P(uJ-RKws93pkYEr^Vw9l*@ zQfiDh?0?)btn#meqJfHL!&^Yr9%qAc8mdd<_jo!xOA+w24B_58S=hcz{{Ou5HQPX! zs>RFO+|`_1Odfb+NMj$>%y+=Q);ri9+Ohz+9t|i)hi@rc|5x)>G~lEW4BvOk=w;fL zSKv8<76|3?rX>TH7knYiqrU zFJ^13$@SQ$1@S9z)MIvfA%P}t@u4Hp5O2-$A{uH$a!YM1aOd09ovYuVP88Fsu@ayn z#S521`5G}Nr9hyCnAoFk_DFZ@m7530OF*_In;o)ATHDyfdM$}w+@ z5W@@~JqbWfLW&w%pgUY~1(I+1v2un_3yh5kY^Z16CXbJqsne{0hK$JK(&8gNH3{KH zt6^<|!V2#w>5XO9fdM`(Dl_iIaOxOFF)mWue)EJ}w`o{?ee@i-8fznwESL^2y2$v& zXY6i7fHu~sZe+olAdR^wM{^{^@qfa-PcpereA3zfn6qi)o^P@&s`jL?BqtWmKTL__ zO$l_Jcml;0Ta!3sG?^C?8kw~iMoeQiCN{A_8RmlpyzsY0nIG};2zt(WW|xTwRP>tviA!^iR2hC@(9Owkt`@qff^{%b$E3NfePYu)8b z&>gAqrKa+w@R>tz z4bm^E+A4_7=X5t#guk)s!gD-maMcoUJ6R+J9{eqJo zE7yXV=H0O{soVS}Vg!+A{g+fzvS7R*O0Z_6)RGV@dR-(X4y!+#$Olv491G0CAg^m8 zY@ZMOO7|TD1#`OyzbQXzm69_PiKoWxd0nw@p%pCcoDhy#cY4H~s}zybyrL}Yh4pvN zck3bJz6AE<73+42R7FPWy~$5mi?3Cdm7JD>4o7HR39U~oRh5OzZWS9i43S9OMXABp zU@V$fLhBMs_BAOSI0L?G&@gi4>o-kuq!AfX+Q6yPr)=?#uR+*5v^e+ReI_dWZRH7u zUqb8S{{XIDXJAtxD#16fEKt57O1?ZCrH8}Wyo<9Lq_pRH#X7WDv3jPQ`G`QPOfu9_3o0LXkwe%oJ5LlK1td ziRbAwE3)hxogMMZDn{8b@jRYbitL|U>3w=txUM)+X%y0uVD z>lA$8%-?G5O&#TOQPZ;lnZYqdzs*E4K1hj>#P(AnDGiC#>NZ1iw5+sZ*r-^)_CP&hJiTH%I0mKbKE7-Aia+i*k9cspZ><%8+M9`^c8YHjM#N<^~PW9{bzG>abkMsb|;rZ6rRYKkiH9q9R z;f7IG_qt8?lf9E9p!(Fnqenn!R0-(6)YM62|KA7wi2jDOnUQ9TH*~g~(uaN%*Pq}L zHpf8j|3Kt@v3_-ZtQ@C1&^A!BZOS>VSSw~*6{{MdpYp6tE3MtN_tse?!zS;a265)G zH#Vv>#!mPU0WEr~tNSfsnv`QV?oz&1O4r4nlPP1gf6Ce^O7x;y|9Ujg0*cP%0^oY6 zm(NCI2qM7izO6y_gvnWP`imO~~7j=gcsu;AJdO(`;sN+KV zirRx^gvwU;R1mfYHC!5Ws`VVy=kaS#mH`Gk( z5P}7=a$kU_R=&OD_LG^o2)FCiR=;7OXL6uY8YPL&_t%9~dL{c;d@D;~7s|~BUIRs? z-(Z(ymuzuKExB?dH|@4}bfV&}-w?MWP=8wa6Yhb2X-UU3&z!xrIrdo zwP;AIKyZF1`sHb#{5U2rlAP&ZNvRDf5+%0?W%}aiS!)~VE)GVAJda$^{netRf%u!e zpvhEYjS|@6`SiVj%D!fKn4{Dou#Oq83(6@j)^HJf-lx#i_*m~%dEWe(E(T4&RZ!O; z9`p{VLez0B$Y0dNU{cdSv#RK4Mn5sf8BW zF}PHmJ~Nj_$fwF=EQ5!rOF4=t2(<>dlVy5ttb*53+bJroxK+!4GAINe8&-)TE@TH*wJS@g^3?ZO(IU2R-e@`=XMjp zhV(s??{KRC(I5A{a%AZ`*wiJ$Z?3{JejCPSoS~8xmHjXu#v_ku%I|C8wRfC;nHJuj zXf<{f081S+)qm*E`X@7W8U~XSezr)rwt}fTKnGHvb;(s}8OEpLla?|^$%9M7^Axl> z+FA5f+F8f%LyuuwgyZ38L>+8jKih%?G7;Zjq4^9=`$zL+vuj~andge|#1%N=3${x% zz&xsevWkZ;WvXb^vZrr~W{|3~z0d!|X4YMkx)&Dz@wRFcz;S(P zO(}xS!sUrU0?+L@BvoIwX@R=|{}fhvaMx5(3=ipEYt~=Q^udQg4=howJJ#5t46Q=L z(VkD$z4(ZY86UAw1bplr~m6N+V zA2?Zpy089NexCR?Z8s`IkiZ#3hOfl~D|uxk|rm z_8SqBDGe%dEm2HGs+_zle_~JWN$qmx(QRqZfhbY6ebj*yD-F}@JkNiAD6nO6Zb@kN zS1y@E6C;py7aI!byjABkquIY~dcXbXzJ2ja&JKQ^R}#8HV@t-C`yUl{*(59FBs)O1 zaL13VKdBuSA)!8c^-;sQ7sqe4V2&|Nr!DsS%~qalQD?&CbZWe&#%`+t>EJ0tS&})1 zxpPywMgTM^pv=Vq7@#HC7Rb;L*PQ)hi-lifR19JOu@xvYDtM0DKkB4FZqu85*{5Ew zy$-yba!}-H7z$xdQN#}?2_TaO^?*1sT*?v-=f3HQ^7<;v&FiEa-(se;x#* zvp?c$%S4C<4SJG2w`ns6P^S(_trfg&R23kc(r@RQagz#3-r)1@mXf#Jk?>HGWBk3Q z;O}5O@xQMR9*0T2D0oo{f`9?Jf1P&XA{j_z@@beQY)OXDhf)rLKTg$>q%qky5?xQ) z1WjBnsy|y?--d?~@#9sT2nzGhQTdDLjVG0lcHTmD*ua%%yXm{uP)})H33sSeuEu5h z64NMQv}~FDn{Ff}@7EJ05WGO3#X*;^>(4QKCpLJ&);_ml|CQ}Ov;WO4n+}3NAam8J zWqp~Tz2h#S|GWJAYohs9zqyCAN_4@U{`#4&i#5MgXZ{7+vW2Af<#T}3aS`(RbBe&w zUI~s5L*VUiApv!<`3YZVZ~_ND%+BB)TM32^0}dgYKiWV+U`Uk1DII&p-RBmt?ZAW0 z24~hOz^r!t>Skk>BJ}`#Z~genfTH9u_5TTO1iQniIDqghAUlpyEh&{OEZAR0c>9)6 zG3MLY9!}9&7xF4=PR>R%M0w5g#Z^*YlM9-deuG6?QLZ+1_dignI@LuoBe}u5qiPEn zf@Qx<&GErGZtWcGgxc&(z*@az3WeK+y^(dRTT`${Kifqt5);P*ufir zueUvE``)_uR$~g@r>n1fJ_Ai|{U?A|Am_cYI$gIrY{@_D`Hc*iSTTR_Q|C9}o~fbX zze|_wdFc_A(I0umuV#`KGTv|jQRY=rDGV%H=e>ji#lejU)$6ZAUQ zRzx&{zVQVBcxm~F7@Z+6pu>>X5n5}fkW&S0I-=@uUp^mle#oJBs1-8%o;rIFplF*~ zzO0L@feQ_TH?ZLpI5_ywdNwqJ(EvcPqBx_;=*rSUP)BJ|ap#MSKr^+1Ky!?kO_lt3 zVW0)DMaxOh;U&`TDwq6KjAqW~o2lf}BVHI_0hVZ9rkA{`Hr2l9C_Oy>k$7+wC;76< z>gD=I)bsHDbe?q36ED%FJ6LG^Ik2xx8CF64{bP~>XD^e-^t+U3Q==G0*~J3^;R{$H z1^3n)(0R_y+;aqg*|iq9IEx0&&gSG&K#?t<4B?#x<0Jzx?*9P}$+lkrwg~Dh_MZ{9 zbNW#BB|Qp>KRDSpG{BY=w91=_PtSVBe}24}^ zGx&@3f@l2b2DCRZrp6N1*nbMxIr62srT*73TcU4RG+V2SG8quQP$~#73vCmLHudQw*N*0LT@zQUO0fIKLCOLhaW7hI4t$CiL9isH`^_ue zj9urP>~g2WV#txFvn6y|eIWNMjUZ`wG8=T)+3#-OeUFl)P=*-mdo!s{nX^4wSx6_C zCH4!%X_KY73R{Sl)krtG7;#;l4a&zxyuD6L{OE5KKJ*kVKn7YsTz;&fj};o4ZJE3V z&AiZaXZBN_dFX2-28BGFOAf(Sl(bYRK>%^^Vsg3W?@$W@k#tVr*3ZU_oKAMP+c+6_ zVtg@1O|=1juCHIp{l-jP^SIpW*lY?L=vT#jjp=7mCbw9OQ@m6$4~OotxEJ9L5XZk2 zq+52O#ROQmDSxrI(NDX1pp^%ps`j$8TSB}1;aRdh6Ej}Q1z+~iXwg`dH8FCOcwwVLUNa@* zz4_RdQqZS0f$av47YVpDsqfUcJaS8h&!0OA)90O=(;s^}YwhKxrI2-$RtkpdaU{_? zya^Y3Fg1fbzVgH>1#u*9mdwsLg-D2Y^;ER`v;QfK=}f*Op)fg`hSod=qPD^96|b~k zZ?Nq~c6-12SfEGkxOHAS+saH4v3JGAvW9MLXkmA7EkK*7ch(C6_>Q!2Ye+|yt!n}r zPK52Mq&GwuO#{VSaj4vur!uvfm-#!p+`zW_JQN6&dnbCH$8g4_RQV53pSXVpkXu}U zK8|=;Zxn&K;nRwJIEGP-G#$d37<7-LE?U>Qn=HY|Gz!E$C(2{B95%|Kxq zL{()RdWT1jQN#b~b4ZK_F{W^*s#T7$=4Efn@VS$JGeC^X18;@Fw8CW(W@CrgZsj8N zHk|5oDR~~tGM`q|u#^diEiM9D5AQq<~ zcCym%)(hWTN6(y2lnpLB&o{rb0}x_hEki#3fK|6;a#i%cKK^k9bbIs=Z6)9Hfm+WoCLhQm~Q*CH=tHSZI6|uqz9>rms z&iDFD%_e3~uJr}<36D19pUfGFR(NYdPDeewI3vGga-lD2KW>kyT{Bjv}2+2>g~Cyj#jaoUNKi=jMyobR-5ze&C)EVL!OQ*2bdipX4F#Nf^fR2mZ{%cOP8MV@+V6TkXKNk})H|ABq7f{r#;+HFZTT=B+VMf`bE~&`S582K>=s(_wDoPySC;G9P;V_LukA0_CV`P zuk1CT`h7RNM9_Wcrk#M<>0yBxm#Bd=5~BS>or*r;M6?9D*GpPIxnGOzSk>^`ZpXr* zT)c3tzPm0C`#dx9IZW_v*zidB=YNWBN|&?>i9N%27~Ef!x%&Eb*{U{J-qWWsfkOuix$aC!`VBfA-ldo@(2ME)b!DQKq%K%=5i|h#t)8CQKmN^j{ zNmx&cV{hNZ$ky3`V$PvltC&FXj61r!bk&$_b|k8G&W;ImjYcKnTiIt_FwK9m_-x1L z68L;k96uQ<>szp!zeZVjQ#$J@fHUq-;aDH+o6!AiuhhzSg#`hm)6cF&Z8x{v&s_d| zp|I^&&wxJ1x^;Dvb?mx$juTl2733_JyB*Ru?tA}T8r@~sWp!QNP@7~MhkR}!*CNW+ zLjd#4WcBC582zk+U3$FUKdHYLUQn#iOE~=vF71Xm^6C;;9?f}d?w$0c_)?9kCPd=a zoh)Ys&wv%tqW`yE9`Tb$qX7PC!iA$oCOe*Oonhp6=w&Y9B*xzSh5yxKawt(cjm@+ zdcvcxsP$lAVlgx5pbwU3(mn!?V|%FLy?<$M5HRSrev$LdD~O!*l!qMT=+z1*`T9Db z_@UnS{uNL|fD?w~zJ)M+fu*Eq0m$1X5Q8ngzBhu+p{P*E-&8D+n9mdUQvlzy=K-iW zd5I*>heI?%JprgBG0q(gCDUlOb$;ys^R>0tS}r1Y^^zC$PC=>v|isyhM5fLp;9t2q!uQ^Qs@RY0-Y|j)DWw3>hG>190-On@~rcT(S;-q7@`5S(vQfJ zt<5p)^5bkAJe=3~LPVFkxxk+57nMMZ-d0={y*u@k(4tr0s@S2n?W_&ZuF4i}^cNTe zed2NB3q1SvX1Hp2BB4cg)Pxa%oQR#W=Y>gJwl)f`Yv2Rfs`)XO7H}t3c&SyHo|1^K1H` zbcF9KokC;}fsJ+W9jT6wq9&N>BQ$YR;VW`w$Z4?J)m7m&)C>&aSP6*`#q64m@G9}i zK}Q47Qe^$T1sms(9=9HE?3;iMRs+B(4F1{a*wG$2dS5W!I~~*j0yz@eKzyYmniO~?iqueA{=+jWSPQO2h~0&^e!Hx3pdk*QyUE}w;ZU0B0AdzQ0J5%Q zg>hQ-^2__B=D~LL(sf?*tNvVaWDFb z^_4R|LH2I*zn2}0#hhK)b9uzR`FgJ#Zb04#4#!mV0+ol?xbo2C0GR%PwZE}AjnWZ# zH1b>OTjvy;64WQmuH@X!Pz_!3^a^8J(ZiXVQcL-6S%sn|IoDT$=43^lA#Jj`1)4)9 z;{Qf1(+4AWh=rWQ{M;}JNHi4fC^+!XKaB-D4&?vy&%a>@;Ee#u3ksL<^HWyZtyzTF znNM4gEvC&W88q?C4-d?dLJHG414wER$n`wey+9EH~?B;Gk@pdgRb=KM`Z>0wl zUslD?;A6hH;?CQe`uS}lB$zYrlj|D5(6|)nQY=!|-3Q8`iCV2wCw$_&`anNKi;;}= z)l?h$L@#W#e*Co9C1#o!kk@0G1wc7Iz~Pe(CeI)z`!0*D}Zvz z02I-B;!lfMQBV|$A+3fsw@fm=nWcf+^<&+dq1O*cwt}7(x$aGmw0er%uioQr0GwmM z%rEU~4`LSTb4+ng)RGVO#g%}9>G1DXSE0EuNdb}ddNnv+7p-1x3bzjY24_#cRjML7 zy-xBP4}Yciv68-3G@!^hnOQWIRYj|V!zF?h8!R+qbs#|2(+4ch06-R}6>>9^7^kB3 zjz%_wajI!E_1q|l*nwc0(S49SoBkEX9?KZ* zN8`hTm~7A!7*2>B>bE{~^o(`?0Nw7rsr`V5&5^+)$OoW0@q54@7sSG1p=vLu?cO1L z;H&x&;JITfy~e!Jvb*vd1buqD%Dg(VEw>Jbc%KZOb*YMg#I9N4u|bN;tozhHR1J!O z{Vcjrn1C|1HWvs(qjMADkw^)Yg-sA#A+jW$qMUIuMea@w)C0>Kn0~2?lbWJEc=?5p zkQv=<=*&#mMcoW=Iefgh?0sj8{li83ilNM5bj8iZZT3g6|3@gkb~AI(vF5>I3)*R5 zTR2x%*LS4x?x$Lk->x>FuT6WUx^lf*Z)>@JKyT%f6_kOdJzAF@e#J?dmvZ>R??Iv9Hko(Zucy*Q8V}?k|yz ztwOOaz7+KNO@pON|VSL7#Q+L4Kv=w*{%R3b<)jZsl|8dd)!Rs z?4N&7i(R+n5kA2B^73XgZ1LTO^H{{-u0He{Bjv{7CMBtgizb+9^ci1UaEB^3)Zb)q zAVT)4rmfd%NHg0%2DKW)wE_Lfe8MJ_17?-$93d^|J8In&;0Qw4UmPIo!m!r-S5~=% z)2%bU^U7X|HXQf=%g-!!U%K5aeOw+u>P|~k`0Wr!;lS0mN-E_T4*ZC2vnBFaFGzmc z(=|#iDDcbks!uSjJb@4pBS(p!Zak|IUnkN%b-+(pB_7yAG}f2vO+W*YdkGc{Lqb12 zGD@L}Ar;3@u{PA0eD09nUJd#g zl`#}!=O{;CE+tyvuM*eu4QG`SH+Lt(<93!F6&q#&Q;*X>v(w*C*Qps11yqMS5`5CquTw& z&AIPbKvj^4NVct=3E~Z~smViK;+CRoY|yr-aT9PckB3 zal12+7+$zNL+%(b=9bb@(&ZW%fsI2cnunrOtV3RzlYJS+uUDYAQ?*F{Q;@Ye0M?ch z;o-y%9??zHwb#%M?G#*!XX|hlIU}Z=rrT5AS<1nE&%gfCaAUF}+C!Q>kE}x1wY`!l z@iJ%V6GE|+K9617t^d!2M`=OWAKT)ZYT&2)edzf19D#UE#J}dr3Ufzmii}+%m68&r zhVvKwqt=>rIGGt2u1^~e>;V3iKPAoPcLnS&EuP$MWaj2Fr-y%nHsKNRc#U_a?uQWUfo`D;ms$1T8{#Z;V9LuCi_N@O$`Seo;DovNxTa*t`-y z>S&q=?yAs`M2;d4IQQ)s?k5@r8B&yy7_CMdqUu^d$vD`+UdctW+I@2%9jyt=^+QV1 zy57QlpB&6nQ{q@L*-$W&z|khL*g}yqb!0G!H`$>i*MANx$de@j)Jc!J99r`OuRe5l z>Q5tg1CNu&MdR?8s!w5-gslHVF+U^~Ns(O0QqYSMQcZ`%ET{MQr%Yyi-;(~3%-?+i zRjJ9mc*|IJ_E~h)x|XOPoye?3+o87gSxMXz%YE_0V7jx|-)5iehul<5VWzaA2%$PK)Yc&SKR>KhhT07eYKP0Z zrP6<|U1yv}tV}&+^TT=PkOp?jv(3osqAkfr<&<1hZwTYZ=Sda|ZelA-yV@dKO4`#T zHGvh6)AM>nw?O&LW zTqk9TM9EFz6|ZUW-(N03y#DHP;Z#?{76{RGRL9X<^y`EyM-$L1QDSAdGqg{MoSK9* zyRw}*n{V$GN|h1nZ@tELIkSn9{!u8`I;EhA|~IRnJ7n z83L0jVaU6$pzX09&$+N-&_%NZyZ4vvb3NOeCtmp9ZvTyM79~LshSIQeb~8CnUs%V> zIA)fi=>fvQ9&=VXF0wHf6Rp$H=xFrzJv;I#sFD~6o1)^@eG2)`Wp)w>(dpzGSXu@Z z+}*5;_yi@{u>|(9xnPl?|0Q6Zt;aPuE=9PDioYoKc<6Dgp?2(%u1!e)FMXf&+GxL@ z%$0kkc=dQQGpjldwg4$-dW!|Qj)xX_k1Q1CYl}A~Qb!VOY^A-d0nb#@ss{SZ3m7Lo^SMX$((mj@{tAxyy@m*F?fb9vF1C z8Tep^@As7N!%@0lRuwTvt0<$*MOG$uXvU4Yy68wP9@ew*xD6fXzI}kX(oWx%aM7_? zs6g5SY7jL^{bYB>q+X=4TgqBjS6Ru{>0ZF{bXPDtFLe)Q69VLTvpz@Vuk&v5=vW3z zql&1=FFv;TJR1-@Gj}*VVmLxUN3~|N@X*-9Q&pOFVHud)@I$-J@X(&wI!&CKofEqi zHMXrQt;D9Rk7br@Zsz5=yRSxb+03>FIz)0~-s|O-32GiHuSwYz zS(V!JEm7R?iV=2nGa-1q?QFNms)#5!VVLscY>%-qRZ~$|m8a5$kx@>X_&L?4i?a-% zy!E_fj zVDb@Av;qhtfRea14DAv$-J$7|^xOppqcRXY0RGYe9c2S*lTzM%+T&7IQ#w|T=-hO| z#|S|{Xa+3XqO`Y>8zA)FHD$)kddWq_#1^b+Qs+3Zx>5D`fc`3V9>qBWK{-&BjMV0T z_tz^z9h}fG69l79MW;Nyk*1prg$=^si}r}-rH%olCN*TgE9_&fBN~;e_%rKW-M`&;EHP1Z>Te7uAvB#OJ}Wvna`tNBzZc* z+|Qk7zH|3vKw`Ne;j=M|Bp4Jg&?J51no@!kT+ZWo9OmuX)(*Np_?}n%16}Y`Cg%w# za=}^AGOto8d^!5@CI=mY`(`i1i-}0nl;C~|I8ivv;SX;5b&VK(oLM87D)~WY%C}da zS@VZZnBxo8P18VTO^&w~eR4-dYqq9QbBWUmS}cCov^_JoQz5JY%3FFaXYY)fp0BNS zjVSU4Zw*ILBpVPT7yEX~+b_@ZSuqbiT;g4{o6~j5cIUy4`3LF)@NppL7y{gIZ@9Rn zI+fhjUhFq)y<5loXx*@NkxyG`24$prun=f7St_ha2?r|5X6J%pY-b{jbDmgDK=4^3 z^BdRvVtB9YgL(>DYfJS;zeF#;Y&C(c8YN@3R-lrG*@sZ5V$pd@s&`&IH!i8ebw2R{ z^}sj1GIz-?YPrFy<4!rzgSI`z;Bu>_ebA?Ze*d?AbLDHR=0tF5-Smv##*AOeG|+}1 zDjQ03m@-CB$6Rcx=&z$sjL6~YIfeiB#YxI)S-24&X~_IMmWs2-dCYBz)I^A35sbL0 zMS}CO={%mJDhhzEMbTqq%m4+t|LJ|a3vUiY>j()nJUvWfjQ)M4oQEnt+);c-Y1)69 zu#3!yuFRE*Q7M?VAUhq(-Ija~ut@PCt$F82Bb4cxVM;IgWOHi{X@^dVa~|1}y06(8 zFojiliKACnCstPWTQu^|Zf&+=C&X5yEpT3|E7LirvXjXgzG5MQV^Wf@SmJ9yVtk=E z6k@rGqEccoSO`z8LZwh}d_TfdJM?oR8V*mV={0h?S7hni*(Q_O99|DbfJuu!JWa=2 z0xBdLP&*i;i(OfeUZ?%@eNXTHhhE|+zbEs@(dY9*4dZ80Q*_B%ZG%0kVlp?sKb+&f=OD}{~#(8FF|gJqnR z-C6n#5m{MgGpml%;wyT}eeBYXh?A|sS{v5S?;Wc(x^3u3D(tSap1(Y3+lmL|9TMEj zsa)4&7JXU64*z&1D@3Fh!)6N;A}bymCv3l;oxmA9)@>p{cXB#}&9wUGtkO1ZsMg;b zKyvJ`=(s0dL81I#wbpXOgg#J^s*NtoCa)6Q_Y^H>zkBZe2ac~_dAJ+W{@PF@tO#t; z=!Ok)Q*)%-!u|Q1Es?8TO0_!4@lLIMcz|qE3YaH~2uDQT$r^H+c4tG`fh#NVl5wnF zSxn0G`+CXWfh!5uVYBf5LB*QGy1ve3v?LzeSJ?yHC5q! zA^on@xSM3Am4@G`K?Zba0smQ0i>ylZXd$_|v!MML3T|!~gEQIJ%+Gl;e4^voO}EfZjNdgmUvBIq-+89mn#0v-}Vc5d^@^cGO}iBiyAJTKJoLR!`Y;*7-lWVe`K~>fvk{wK{`NS6pk)s^UR7^U?tPUbYIZpS& zU}c{n5ykV1QOf%3toONXskXau!#74-eO1X|&2dlsn^t-`Bx$20)AA25b^=RIzjSh0ug!Ok2U~MaYB6jg5@@H9BiAJZEX{~ zy!~ghZl#|suT9m4XL|9|j@_6V_EGE!nJW8IKHg7Zo3w^cDpa(h#ITKJg~DbRjJN!w9sM4uwwHPQ1qgWSpXi1=A1G3_FI@4n&6No z-i&>;nhQm@%xQR(vsr4Cb5*YMl*38vEd$A@Pc~mz_d9mxx6jUe@VgLs z;S^87$=|s%zc`lvzd^C}PI1i9^+`!&YH$$0xM+WI@&2OXxaPDvmy@P}`E{aLUSVat z$o>B*wghcAeq4x}_4TH&=Qqv2o26bt?cFB3P5K(H46eh+o5cYLAx6U5Hj3hWylVgg z0@qt$KKbKQ4W&?H@!9Xq&+ER~w471^fMVUr!NSisKL+rT~ke;ohADAa9N?{fd(Z1Nx(Tm1(0t%bsT-uwiH#%h6U&Z-isck4<+j`<-ArNtrhwt-vq4O-ErZqued*9|l*jp1B{Lw-#?Y zIF|U8vz>#p!Z2WAmE>oqe(cW+s$K87v$nv~YiyMApIp;6z6r{WYm*eH$J~v`o?Fik z@)e>M9Y>w=4>w7%fL!`TyyNwF51)ZeJV&481b_H%N4Z!>a${?yh%c$5tB~+n+L7Ie zXWxH3mJHeZ1=afV{$$(vxwwGTWF9Lki{%mO!OF_~`ibv@`$O-*U44(C?+&Ldc57|< z4Nju`W~)!*3s>|*b>nB!DPo!EYESo~sQeI^vgm3gN-{?TA@N;lX-pZDrBR*AZfQA_ z`PrNAKRa~|hrM>@dsLrO+=FuDi_xIT&k5L5yIjvacI&#SoE!>pQ9iULGgImY2lON` zt>g3pG*kH*>88`c?@rL1m5`y}Ky zK9)n{^X-16g!Fmn-+lab$b*FY) zF4=Wf!E9mX`Nufzik{fAt(`V1&!QbG9XhCd&FblX9i`5dHu%*?g?fmwS6%GlqsFN3 zIfCu_Cg}Ozm9DWw7wv*De1B}QJM7vUBV(otlwQd~t5jbQEGkl$$v8{BF{8-bBV^XP z$Bnn@|J7_Mx++ zCD?^glEVeI+QsC$X?I_nGNngcYtZ(P5zbc}=C$k_*mN@Y~B zsIl>+=H#@%caRH|!PZ59#D6HgNsg?SV6~r~2_i{y+x8@2j6{Gcq?nx01-Mf`$vsu7 zvXs`yBDyaKm6y{`{rV^x)J#Wr^P~>r`W2QOSNO+aH96=vu#X*}Oo^Y*LNMKI?E845 z5VwA{x}$^$usGgkK({^x=;;efBkP$PL1Uz-as!|!HhGp$u%*ZE*D$Y=`y27IAxZtI zC5vy8$}8Wd;Vt{rMukBy(<;mVP!Or?2Aa-|i(Lfh?~P@h2tpVDBsQ?+*%Wkdmn+EE z71tL*0#F-~OJw&?0JPlcf)jn3c5v#2O~VAic{6=2z?|{o|JDXpUl05das3hZWKtTK zCzXO2;kXAFrAk8$&HW6_=I1}}1dnW=J{ z>1N%|dVJIoOzf%rlm|04zmyWyK z3!b^A)*1A%^{Ix2Jx~{cuUs4^*?79AaH9`#ey3dD?SkIZrwPGJcfNfKBs|w%5(|Y> zu-8GLF|^=R+!G^Iy#uaj{7Dr~0R+PB9w_pThk{O!D3-qxZA97w6>eB!-esTFvjxtc z^-SL?vRQ_MjKGj7tyZOCk+q*R#eP5veh^LYOCo;mK05K8rI&uG{4{7_o?m&bOYi%M zJHlS#P~ZRea^B6IQT}V%EcR(lpoj2ohjXw~Uma)+W2m3fgL@S~OMkqolWRS`FsB@> zLmR3Zq|Vm|K@E`JwYY!|#j5luX%wCthix?|4*#%M6HsV_w@M(4{X#HOO-@%e=jRmh|a} z4evHCw`pWJMoSzsf;A$py4&Zx_#>I2+8imp;VY09Q5w@xYuxVbCTgjE@j^eUK9=;p z#Gigx*n(qbngwA#mrr%F!yBWAMCnM*D-dS@*|ptEl4w%k+5^x^(65IMoo+x?@@{_x zdVhNxd)qq={&K6Osmg*Fk>v*Ks=N5GfVI8L~sYzmH)2biW!P?0nhYn7KdprE#~K-Nz3uN1dJ307QTanRXL zLN+fGhv9(ky2@<8#&w1A6)+Zn%nH$MTbt&AV4t1C3V2y6Y z+{ZJ#6vw=A4-o~DcKm7tk99$zqa1E6IoB|BCn{!i;!2x_OiZ{{CkYFlQHwZa#VTmJ zKtD%DVo9-JGp1%4zeAxjk^;hR1dgT2pq>YhJF+FZ69-!28NE!jO>l%1)^NFcxfwpnMyGF_2> zZ|wmUqJ{WIVc#xP8>~gAMSd2-UCFQj$*-MXFu|)>|Mq$6#x^4@r-jXSxe;?Pj1|b! zK*$_Sa`i02JsiuGl5)2UdLUx9?<785z91{~m0(5uMZ?M(Xt@DqzU}8;zjJ3=l|~Wm);f`@pHRl0%#J5)O%vve9d{(&n%S=%qzY{s~hF(+(-`hmM0djZ|t%j?wU`i^lSl2#b2qohi3W z9O&owK=&k7h$+n@3sUX7Gi78nV@n2*0AQIE&3}jzW#PzdVbSn(apCA(fd$5@TMSdq zy#GEj^5MvL|L8VBI?@)|P3z_rSmF{1HALsn?Z(A{84#1{Do(v*c0xThTBlYD?m0F%sfOZOyE>E3_jqb$z>SYLbgJNS7vdB}f)kC5NFDg8OR-sS{ z&eSkn8Wk?520)roSa>hK%|nr^9*qZ~V&W-ay}`NyfnRCDzvZ^5xC7Y@^`8&ook&XL z{>)SKX`uIDtB2x$m%qzX|6yb~CT5Tbey$!t6I>hrOH$1u?*#K;Z%N3{5@qgUkc=M& zCmV?nEd9)&`h2|n*8{zNgR1vKQTSIpOho)FC*Mnj*n1NtUL)2hDiC=2hHvG7B(M@* zq!OvK_$Zd4(bML+jc*iu-)na+2oh0bwCyoM>p)tm zJSa0_P?YwhNLXwKe0_cN*ZZ5ZI=IR{b5umxnQ4h)?M$M#OJ(Q49 zkQq2gWU`-M1A#yykuG$&Pe~zF-rUrDba0iH0MmXxNyQ|xW9V;dmKBJ;V&%%RN48$d ztlpAhR|f`=T{4AraY22^axezU-_|W()FsI{2hOK_k*H-5Gax8zc~-FqD$~K>t_ZGu zxBoUlCz5jh;+Ir4rMuy)7Y3E$7eGa!053yYp!{9^@&uM7;T(J_Q)%e&#;?L=dU)tG z-!&5?>fTmygIf%E`kbmFB4&N{#Gq2$=Jp%tjhA2#kaKcH#P|K<-y$F=M#n>1Z&CW! z#7d1FFqev8-5wO$Ezxo?BIqU%xfXi?pgY3QV9Z^P_Ni%X{A5De%Kiw6*;E(KmdCqY z30*H<*sT79E2MmHfUplK43I?`M(s_tbPFN(;WWZ}CdxcM%FQB$-W;>wi2hKej;n%= z=f`jMLXsS6{8wK9;`U1Mg^2~eRPIEiHMS`{6R#>v$u;rw8#2Bseg?fS#A`QErphPs zS-DyNsT!YgXl>s)mlwCHj*`2t`}|uO0?Vua;mdTrTWOL)qJ$q{+k{o-C)ft?<@4|7 zM%J5jUu3wr)|a`(bKrBS-PyJMv5apAGvk|Vnj6SEf(bdJ8k?hI$eGpVB}z=43`|b? zb|*^_ccv{h%w8K=iibHz9gmf^H>h)ew#;vKh!ZIVvgm_W+3@@bf}E9L;u)Xd8NC$t z%>+X$$H*deV^;+8b$c$_soXy_)WE)X&oFOqIu19+9#ht2`l-Y{iJ6#m?v|(hl7UTL z>o>@|3grbkiHQa{Wbu`ikD$m=SGd!GjT+EVrr!5ZW=-82R04_!GS-AJt2cGM?C4I2 z5{cifCAO)HT6t?2YpFi}IQ-@EMYGF#k|^)!JHvu`z)V&~N^5Zp>t~0f2y;A?AEq`r}WPwLL_{Sns?l=wwo%OgO?3;{N=ry$~gg`An3TAp@6J`SO)Z)we3P zF4aF}53X6+|I&Eh3$!6mWYdc$ihY1lh1uxy!!DHDF&_5JpE_$JdTfmyq(RR}C@P$=_^136lU?Owp%=C@C=`>~7 zvj+}&5(ho7X~Z-mF_Tkkk^wUB@N|X7H1yknnpnNlkG)KPFn-0J8Bve}x6Yn9IqlHe z(zZLT=C9nCamCe5Ojk3!Kp1XAsgj;Hh!#9N4LdN{=viQa3JMAg!9k*OzAP_6{ zhmQ4>6j#)+clS6UWWSpcj4cHcOKcDXYdRcEcpLvCu@}gP9rWC z_`C#ir#*kGB>3UTSUCEVAS~^D)D?#}2FZk97eyAoLnZXRyipzP1wz+lI5?5~sU9)8 zn)-;8|7kCi#1d|3lYfH9(bu=Ma!ld>dey_-(TPs~qqUX!(?Yaam$C227 zHFNtE?+xa1NAu<{C)N1V;Lzc2SGpyK@30iE|E(qwPZ(vxpanQK9ICu?AqaqbFgWLG zUmH)C5fO_Q2K+r`XQ({7LsVl?iWHny_X@phZiS?uwA#-6%(`&l%e*@)bMMd>Yvbb< z-%&r1xU=Mk00FfFW_4Pzu5D*A@*)xI%6_dMfJ!g8_ho zs38h1JoIj1`SyN+y=qJ%wgJe|d3I zV^zfRYq((KHT#kp%~#l$`5#mUjowrh-P8~rh2VgJTnaC`D8vAIO#?T*}_TC)0p3^=qbE%D&~)C9q1ZPU(F&9e7* zeqYr8UUm$lNGg0iVoWxdifFklx`@TmN$XjskvklSkZtf~ryhu&0r;}IUk4EQ9 zdy#{eI1mF(Ufmr6Ko(a;YW}fv%~wPt3&;iGGEFeY%h0$~bB;%X3o5c{SoBEKlT%I6 zQNsjj7uOF5%rFC*#Z8(*_4;iE%<9nkiZgm?f6V2im!C2&0E>ilpo{%1NxVo~*#gZY zJrZ2rh^4ZOh!+tQ9?4}DO;@R`?OAAS%o(tV)yD#o+)0!?=(slrHiyI^bgV(gE$Sbg z$prv@h-Xy+db7L3fiq$mi)@Jk%#bylS6s4T%g~zrM)l^1n8H;gipa-SB+wy+xCI@D z&|n1ZdjJaL0`Nl<*a>~kPT2!zMzu=RUm+a-e+Y>x{v+sLDh~HQmZr|g4URFu@yZ*l zr>J=fL1IO6q-x^INU@lym2&6nYJ@hzGX5*cy(DqDyO^IG8Ri*-{ZX${JL@Hui18_QuKO1c|r34WyB<0Dn zN*gby>p247b716WDa2fS&Fu60v|7H3x=!vRD`d_8-qY##tt}357lN5*Wdz~Tj!tKI z>H(beWnow_%mH=ax{y@qXa^D6tLIN^D^Fo3MB^K%M!LDKMh>hBlTf<2f><~3Gk?$u z*5I8=OQQ-+mbQ`C8E3s9v2GG{4>KlFo{3EsD0Gahi$gE!?AbIE@casw)$}7elT{j> zK{Ai+95rr-8Uz{X#W@l>7A*?F=`zh@t6Z7uv<_l25VazK&h}%7yDYG$FBj%6azqD%_izdw_FY9{UR^1ac z`yTs=;NXvS7S5puT@~%g=FwXz?@s zp{+|MrL0hzcoR+uW{lV)j#h@>7Wtje@0eXx}*;EbmZ>kqZE= zlMc))W$(ic*(XDx@zNb`9Tz}GX5?X;ec#E%dlUsA-Ux`FYV%G2B`H|l*$)AAf8aI+ z2qE0FdX~B6yVjB^ap|;N^e9g+9LPFXo$%5327XD5{ z=Lr#lS$L)xdnM2-iUTUe{{s~m=P?>(IzUj7K9HbHY*m$-rU@93CJI(?X^I@$mOQA9&$D zCxo5-E^=}JIe@Tq4w`Y~vJSM_8aH-FtShT$@^=ce=DvfN(h4zfa&CTp0I_Z}2tEhd zwybPZE}-7%-|W^{TVkNt-0=Z7H_!za_g0uSv&Z4ugX^EirJuiUhGz`PG}+-J4KfEz zX%|&@j%dE(2CD6Rb62IbGYy{B8?2ubfzKCWIEVd(6^f^ibgSDJWPl2`r##gTl)w1bwHz8UDQf;l2EC22f^YAIt{PBhRTIiVk znB{%{>xI^3S7j-|Da4h@p;5>F`F+JWG#Nn%h}Wt98yEn?b@z`H;1;TXn*+!f=fc=p zFH#9Ft@l}rb`(cl$>$Ag%*Z!bhgFg!&PhGmHky(Th2c@ZL!~>poC&zk${wM*wXzN_ z4K5CCkV-&x5PZSe4J6U4UDuM5_XzrK0;~}*HO7at7_z8@-s@YQU+A1jF!2GwpzNvx zlE^TO>bA)P!!B z5h9H-B)RZFqztT1;;*>s#LT4~3+SNJ{fc&P+vxvS%pqmnXjkGa z{7ix4;KWrax++GN@mc8ehAiusiHqmXT~B^(ojIYKwz$k!gsK)rA5#uWHp8A=r>&Nm zs8u6>B}^;JJe);Q=v=;p60V2KD`Z7=&Y`u{tT98R;=+Ec60;G%4yI~~dZPntbOkIO zwZ3Qvyg2BoO?XDHjoRqts`>Mu>4)}Irq*kbQ(NFh;{;zqDvat!gnw%EAN9jxN`=!bp_Oxmvp#}Q=KGEoA>>RP2F8RE?wrW=n^HHt zTiclbksnZcc>aiv&qX9>`JKBg<+Td6%bS84)7-cI^>`4dkwT^6pxobP8TlT#t;7lL zRfZosW?mGRV))(gYt7*MX)Tp;m$3IhcepFHQ)kORxKx00J*Rcu8EJzKi@;rNeJ;tByrUd)?r+qa_k}*5S1n8KJw3j=^BX6j{mdNK0E)e2N`zPA+`Jo94!D zE6UZ$?UZw+Wl3(_{YCpCZWLDGYw?`E!c6|FT53?GH1qV$MF*;N7u3zy<_&+&U7SnEuutvaTBH>Goeo zxgA5#0LxkXcF4KXvSfzujGk;=sG)|Tr1)pAXLS60`>TCj4k+;;`zJD;5;Z@t048Gl zIo{x>Kyl`B#DUEQ=*#>0XPja-oKfK02Vb7~eb?lEQW4K(tYfFqu;AO(m8FH{fda=I zH#Etfza?HXDt?vtBlwC`W$q=F1@a$5Y*;2YX=CDmC?YY_V0L!RLXGj=Nl#1zws!G9 zCzy5hOs{ovC76^tG&*TEbd%}x(|^qBsOVn%g9H1jXape)Q#USjwK+s>=#US{YEvRONw*5P14DCVo{?ZTVm{u2Fnpu&fw+lAP_mwozdpSG^P~@W|3(XX#8{&PlI}5&l(FC3Q`3&W}d%jnQh?RPcbf zc0NHJ{B}&oN*2~0+q6tG?(y~ORhs5{1>@Odmz&oGz^jhmC5bBo>NyPv7s{lzl?h^yHBeTAmUbx7Lr0 z&8=f2aLAq&Se`RL=W6`&ojq3Z}HyoU$=+|o%fMJN3*MjJjvN)2Y;-chHHH^fc_~k#`~Lr>uaJW?}Aq4w=aj zIWBe?N5GeCZSqYt>{xTHZ)0DXtpCAQ(?(5H?3j&BD}o5&sJLmiQ!{Ow#-9aE2jK3l z5D3>(_|Dgz&d%P82gHs0L1q?%$Rk#skO@S?5XRjmu~TosQXtxS z5*fe9cO19Xc9ti<%1$!>&pWHb31_H zEC&q-s(eY#sf6s?`=%I(XVu8YLwegc+(2TueAo^=J9+CZSCBv}ol8J?C`d;Xv{#J+ z0Hx9S9D|(3Ar&K%v6Nscp{iA)q|hr;6H|Faa_KR&M76L)ocKg?PxgRUc3c zD2~*g={QCjU5n*^o zlw^rY6aZwY%E3}lYw3q>sv&=su*4CFv%-Wb7W$+g|54$cqDT<~DU_U+!U;NsLt;5c znWu=LV5(fkK@b4QbUDk3HUOcQdvA7s2$E-)s7+pi-~O~eoef>!FtJtM@IVg@WWUXb zAul?rYX$SL{8G9+aY|D{@tfI)kL&9iCla;bGg5Iq?Ak2riz6k;{OLK<*933pX#f!> zGv-8j@bSaTNAG?Ez{Z1#$6iJWxJ|ze(wCiAr8PU#wn6 zZl4aq;+(O!k3x&E$R{bb&j{gZ=I1#KW7zrPWfejDbdJyYVsHrCXM~lp-iA*X;(Dy| zEZE8~+9t4qzv&p8we9t#iM4Mi2Wq)b)*8+B<0G1^7(Po6H!aJUz}D}hn_~TDarSvy zo`YB!jM<1i8yLR7zaQ|!a-SPiU0v0<(S8>giD$F$_}Vk+KtUhUN16{OZgx4A@C6BY z@IJm}gSpW?wGP-rHa140n`BZth*EJ-K4N-&z=taE5xnu6e){yN6`W{kaAxRyen^jn z$qa{|ilMi@?9{d@%g;_-m9M;gcIm|XQ2BkBy|;=VTh=qZwQO94abK)>o>wpHIH}mW zvOga0e7CgpQ6t~WTVD`YWvY)>d@riEvbKd0{_XG6A1^z~9@39Xdw`XVjoZKM^m-e_ zUSFVGcV1VPo}W1@*fWT-_e^$vfokZ#_w~IY{m@>%GX8hqdMPRzN6@vyXY33V}vO%7t~ z?5y1uqkPFxD3fN~LGvAQ;WvbQkA>gU&?9{E*oTW;O4knq zdhY3CS)WXu%RxBdPC2G_5#@P7?9C&~en0noRTl?ZY&i^PM*Hdd(>YIg(Og+n6XsN* zkq!enkX)W;=&0{l;r`&W?2DtZJ*P+I0-R4y-@Co)0eF2a57enVBVYK*R2N2AaFk^y z=1PaSFKvuH`88*Y2@pP7brs+5IZFN?t7zdA04no1`s+V7Zb8a zPBm^Q_+4>enVuy9bIAG7HVMSCmyrMcr=_;J{HS?b({%0jHQcSQn6Y6x&VyEm@eSL)U%yvu z*8@#%EEINn&Kh}C$2+)w?dh#L->~+Xo$-W->iU0c2mQrccYnG=9~M??C;iIp^_XzY zEX{kBjlx?7(*9xh^@~WtC+ctN%?-y8n%{iK@Lx7oLvv-X01v5#{R}6E8{^4N$_!R- z6E+G*YdvR^E_AK#M)6+#rfnNWhv`0W9K&SBuXZMr?c2Jx=Mu!;afM~1{QX2tRb^0v z#Yxaew&I(4vyx_&p1q03eBS1XQsKB#gY6&t<7q3dmGR|mTQ%!07H)VJIJUl7>y$%2 z4S=8*@9mLa@UEt8Cs+*=uUXWdQ zA>gBFnrv)i646?n)MP5)H#UHwE+k$aF@q6)A#(KJ$u>?3<{gAq6&%~SZPho zzGM$z&XWp*(~AT|q&EOo1uOhZ5L)P%i0^G5NXV=>@+*?XnAm@4Jr7Pec5$w(g?6?$ zh%yedV9w-6b9O{8Uz`tgC4FmUY9%Q{;2B(axd}d7`SWF`5Fr|BOToJx@$k;A3vzJT zzq|tnk>0-&q)Xtod(4Zoi3VQTe#Ojx=p7fE1E6y!(n?Pi@-dfWAM2I=MeC;&qJdhk zF_$Q6cRg(3PcH82;TXU9Mbv-7bTKT~s7pe@RhImv_LY^!FMrn}T5ka1^5M`k*(ZWI zlY8Bh9y4OHe9h$@jb@50mQ~TR7==_wnPp<&4MA9`B=Pc&Dh*YvX%ZZjooa7tcbO9= z?7R8OSZ3z?i&8MQrQU?*^6KBE|bB+W47mMX*vi*T;-wx3`c zr>O{I$YS5kL+B6p(#Rh(k2TX3Ml2hT(8zRzaqrQiUe6ImCYq1ftm$gzJx0thy)m3N zLE`#2RWJ#?M8_1TavkcN=da03r3uJzk$WzRCAS(@z4Ul;Z7|bzuN=&PPjjR_3Ltcj zRw7-@0pdL65!8{n1OP~9aSL#qWI8=(8ejm6=(vhv4+8Tr_Jc4>IR@849{^9xD8(@j z;s`+Q)uTn~afEpW4Fofr8KG>@W2V=}te-7#IKcVa4ql8D7AK14+tR96U?8YluF`DJ ztaXak895)50>-oXBu)adiuL(C+V@F08b>E?L?Eub9QO`G*_D7B407fGbjc(h?*b~3 zqhvF1l@tLU)I6X(lWWz-)d&|Ltt@*7L;FQ zEw}6XQK|`q3P~VP0YwyHr3Nfk#7dF);@&zqdiLyJ{`SFgOo_dc2lss(4_5;ed%iw(Q17PIQdawmcCoA~^Iki(U3q9ysKoQu6t6=OXet zl34{^)uI(rCURK}j4>7YPZp@;nOBU1CCj5LSAj(trqe7<6iDOfk8W;KG-DZw12>6; zBJwPc(n6-$t9S8Ghh|_9el|sS-uc$RBB!ro1IwRoXKcA6I(KhkG^hFF>B^D}YL6B(U8~77p|QdK z$HEq23dMrEQ2zBB!pW&oE`D2B03*8)b$|0;wru-*d=+Ek2l?CovRWl%C4c+3&A__w ztKFn^|MvH*%J04Ow}j#GY^)@yT&n4;@~9U0OII=gh0)#(7p^-?O_uGy#ByT1CZ_|- zx86M(AOkTdWVF*(3jL}UxJwO{RNJYq-rF-JU%awmiXMOKYgaik9)CTv`YP|NEkn`# zcA?TJ7JvPQU|069^?+^pEc%l6TxC!Dl%|@haha?~RSq z@|0jO%uI8)h|Fq=iYZ5$<}6M<(q=&x3EwnaW=4>ZjSyOR)GC-JNiPKmaczd;2V{a1 zY2XK51aso%bj25YY>x>rRuG~oL`3^FQJh0nxB)cL$_sUXBgPjzKo&yTK>+~nL(22T zfbr#7lEsp;R^$T12Eb%l7D{bo7M&X#Cg9kj0$2u;L%v__wPiLX4MP@%@xmp67>ycA z558LH*`y#e%T(~E|8r~GKq=%2V-&S`j0)k77*HsI04tz~yT=x5$hC!U!h;1~UR$v0G7M6*13Z1(9tU znwH0zrYQDtfr5dsM8FZ$n$pNmxfl3ZyRjHXaKR@BkRZgfyo?lu?3lpuW;N0B@?0x; zcdT5LwCOf^GM1~?l*jk!kwqLK)SUI<9+MJcDs1~Qz8IN2*FX3E`=N^#n2 z7Y%As^yZ^mh{lQnc?LRJ56ylY^)3ziI`crV_{T-UE<$sj@8#gHS!IqhM^s zKq4%%JW99#_5P__{Tkh$ydUaC;LeH^SH} zWEo;OLd+{-tUSUL5d8e-j6yaT2nR$F_=i||38Dl5TL>#R;lTLdsVL7=k_uE_PG`h7 z8F-Fci71R2#R3As8S_)DY7)m@0!2pj7&hBAm}+WAihMW6#>ioyP)padwmWKrGZ12s zgG@jjm75C0R79nO@6(NaHDn;`45v8ukRa-p0Xj4bV44QPn{QeqWey1fAcT>L)-Ud7 zyaOK z`qu9@9k@D1{cd&fFoJ`X4;Jnp;`Tx8!%Gc*23QdgSAKE!@Z!`lIU<=C`!kb2wwcf< z?>zKS|G*G_I;rhicqHQXW(8H;;1&ZIqC|f9gKX^Rkpst7Jm5#p^QcPtKMy%!XWEqB z@`k!WGjh%`nh<$u_+!r*n_M45^uw5l-c7E@ON`kqK^PFOk1#2I);7DJ;VzKkBNecd zvZ6l<8RuFU8mq!a?CLXMT#R=d&d6x55hp-NY9zvCQ~+DJ$-P>CV%`g|-hN>*cg!9c z@Q@h_gxSJdfX^oXg+f|W19P>gW}K|q%YBXW#dTVmO4eEY0nNwzA>;+aGj;II)=M_V;pfFg?`b!O8;U1=7j z33gPq3ZHl&HqVsGlXcC`Jrw*{*zc>TYDUaf3}sO)l!d5x_0%M`s@h#yTc0;wVvBLj zOgA_N)o1@NMU z4KK1DOV7(`wfETmZwIKyrf}ldOYTb3-QJ62veisaASV>HYe=v+>3+h|tFEkT;|D3G zyBT8%4Q2OMp*JMyD8^QHYUK5FmyeO0kSHEEW-a^4T#7 z3@{D;}yYx%4ZOv-C z4SGWzlyPKP`lh5$yA2+7Buy8i%5%;l>$7@dm)&5yZJvw4-+I39xDFU($8G1mSKK{& zEs^+(5lc@-FG(%c+FnN>BZT_XEdL>z+b7)lz)(DL0?wDNjEJO8l?In%?K-l=7@@3x z+Z1%%5MqV53%bLdxZ6bM*XrpnDq3+A9#imjEn|rhzeU^HR52ff>tpO&iKfR;3v50v zYLrhACK4U!irP3jb-3GMpG=e-Zea2OZtxkmZHF;0=s|-K-PceiBhWd)aPXmCkYhs1 zd4zo$w~vgI_^Ovu^5-EK=eXc&1{UhwbrcO8=DjLkb0=A8{>i4?b0Pu)^x+psA~l{P zog20d1zBN@X)RN~vd@K#t>qkF0X>Yq^!AycX5W(4{@NUP-PAOV(dik0W(1AjKhY@z zBifr!vvm`dG6o#+-Ay0Fg3U?|1I+qvRkv;xzqy31sEDjj&2)Jn;ur^aBX#CMM`9AI zpVJ|wDN&7$Zix!97aZnuCd@3Cg$ax5si8)v?)?x*uo$3?81Ert)oeVPW63J5$ zgqt1S7S%&;a^4%@c$3PUPD0Qu$Upfqhl8}$4r9-NBvC{)zlv>H6B;gJn6hTLm0toL ziqL)r4ii4f8$8Isy(sayM3LIxA*-8c^$K*=jtP!|d(T6gG=o!fp))J}(5sv))K&k- zLZ-^UJVLGgMKy-|9(8@#9{^ra1(UsHkFT^ZNLKEB5EGWm^0mCSCnT%99BKTBC)W$E zp5?s@z}L*Wix!@#z|!;f3$Q@BQBMi&Vm@TUc>DZpVve481)OR;I%OPq9C!H|M@ml| zn}Ec$==-4=ej-q@x)7^^CcDLOh^Xd>N(e*Cd{W0poH8Fxx*gmqj{GwgIP9=Mo#7Y050^gD&uZ4AcDVY zpA212G|50K=g@izm;w&IdZmf+1g&DD_dTRx-%7&=D^!)T!-vsi$A!Tf|9%uZt2sJr zh;_S7j-Wb)6=d)h*8Vpg23BG?z|y3VdDW1OE+zx&^{POTo_hT(ucnZsy(`A3=PpUJ z51hO#OsuW`xyztr;5d?P%#}89Sq*OFG098N)sLggSq3*>kZApW%#njm#y*_h$GD*i zRBBLv=ix+;sd!?!Q;{5e!5!KM2Oxtw+2`HylB^CTIhe}o+yrlSbTJzSC9_Ur*c*OKL<6vJj>KO}>_m$wf&(=-A}(2?1G8AuJHMT4}OLgqRyD zujZg-T8l8ZA~OCFImDzp9IDjAZv<<#+c15q2s-C-sf%ZAKykwXh&hR24Otv|n`rkG zA{I|znR<`PN8{-a6g~dFR`9|I{tymC#UM5UneeC|t-U10P`eR?JTZz{dnV4nr`+?L zj8Yh;fp=_c`z-x zCEVclsS6~+*p7zb5OAv8#`QYc0q7KDO!n4H%X`ouA!zKni>Vhs^0JASKwdnNdDQ?s z=43ua=8v3@sBgW&rkFK^Gr=2lwlWE3Z~|JG?+Fq5c8F>aKU8{7u~3)U_KCaPucq3IPUtoJqG9Vt5n;!#d2`+>iq8-CQ7v@DW&As+^}KSz0Fx zJDX_r`KVZB*=!pf&o;$DVMd}XR7F%`t_u5>2F?Mb%cV|heH#C5O7oIyf4u}ThS&1b zPad3oR+seFfhU`;g*U+$b_Jz`ETb7FkY{fsE8Au|LT5u@#k=Bu+h`T^O z;Bub#x(A4(J~bh&_(GlRpd>O-WW0Ea8V6{f7I}tF73F7~>9}84?lGLDQ}ZLZIKpfh zzP-t9yLTpYDm=r8N9J0kEpSB0OET=6^EkU))-h(46T%2YcXBQ*>e^Fl@eop7Q?fV6105yZ}K+SNhw)MeQE zMYiM2O=8CA-g#C}3gy?G#jzYypt%8q2?HZItuusf+`IMNjz zq|dqoP@)f*)Nz>aIM)IZ%648gu=-lad(d0vRa6*kbd1Kpl5S{9hmeysHr)?>UhubDTqaX|CKs`1 zv3mURJ#lE@utyU&Vb#Aja~GPp=;1%b@@ndHHD`_+$t~QDp#ewBXV( zFhv1_U@!>JP**+}W391kW5PO;&^%5o^+Fi2MEsXsWR}<=)_cfpiaaIQ>kQL%v!O?G zP}Qm8!nVDeyg!h-=ck8LmKleGVxnnceP4=Y+?bq8K8-#0OU9fUAwDU}G( zY=O>Gq0gruY(^gg-dc3g!Z_U}D&BYT; zu^X(-@scuDZVMn@EmMF1GLKdcuMwv|IQXF?8XeDZa0EwvmAm&lh#Jg3(HAi&f~}bPzYvzERmRn;K#b*{dj+L?$b@Ph2bG4- z=fhelMoTj9YqZE>>fkVo;EWhVk*DBY?wKGIYzINuK}JLZknKT0F*^nl_KrQNyzBDV z$HFl1n1b?+i=80mqe#L=PK0oRXi)XS`52r+zHx6s~8Yh30c zV&VQt`A$pA#5`@^{v+d|v)AMGpjTZy_K?v3`SFRQKB`Cv3hz^KcIzV7&!^Iz)&jQ) zB?X}$oyv4?2Rjo8PXbP$HI; za4>mHdbF-LCT+-yYipDrEFjh;tppL)iE2-H<3hyP?!$z{{^Xr+_7xv_rgL_*K(ZE8DBfPS#YqQ`5 z1ljO3^)I~MzH`9o0R(s44Tel2H}34QfX$zaX>?x(wyC~pf@|Udd~&hb7*M$Ep-XOW zSD&2cF?9WFvKUiBkFvoRl&hp%DE{glatJl+x%gfaa|`mCe)Wy5IJhqIPJWMziU8L9 zzE}>NuwlRF*MF~mfQG*RjZt`>b>>BR`%IG%CeU6J?ns*w(P;IBx7>DH3I{U%;9!{J zp{}1JEd$t){CzsxLT}*jAwjNm1vUDCMTMZ5B5t-N{_4azIYxc*+se5oNe~Lg|Wf(SdgSR#ejAca| z&VV*8fr}2jLTCqD&Ba(DIK`GR7Gp)3St{W@M99CXp>VMCp_Bw`T<58vZ-Sb>C2ONg z08(L_0}w(3l&yyF#K+B^t(zqr%BirSF5eSXQS-EkP@auuMNjZU4-yd=QEZ@oYX&3J z(B+3v%tEbCHOyO8pa}u(qny}$DQ8HrU|S>KidFYa!_@iawCfgYDYaT?Psw%IWxH zuLl5-y4ndrLJwJwj2(gRlX`t?^^~O4S|LkHd}CE!tEM9p zWr(A5N>>1g@acW+@j1Ly$p*_BZHi0;nmNyqG5_h>8~0{jE8VWN8`$P=J;^i7eGhNR zs2+iti48GA*8PTzmR|=&&xu!+G7-2+msQ(4}r{`McL@WTl~3YGjH9wx1X@Wos2Y)Jt0s>3ctk4hXKG}=tT1pr;G`gzGAx)kh?2MzeC zA8O{RmXdCi+-6Yup)Ew@QYll3$WKj#Q=4aAMbY&SOH(&HH9K%r2UXo_W48;w0(8`E z+#*ycd2)y-%ep>!-Qt5U+G8uK_Bf>)7ouIuO>Uf%s<7^By0Jrf*b8W#wg0O4h1FEB zj#`$+M1cgP=?!d-|I|Yi4SVZs5aw{Hr)w6sFJg`fqH9$@O<{3m>AyZO(y*5#5y|!V zuh6163dIkljf)6X0n72(FM!KIc2A?u?AkCXA19A3yc>H4&(7Sf@TVn5A`x#WFtDKJ zx)<(5Ss|UPR4Hz=5hFM_cu>l&W^-vISh6!34{lTzJ8YOrrFsfx&>jajO zA~iWuf=(r7#Qs{gs%0JDkvF_?>&^(WQ`VF#l}x@p_9U<*^T6u-nO!*lJsgjkjZsfG6G`p@T7z?T9qu^m*By1r;(&h&c4f0G~SHw4Q~~{M7xB5 z7&#=j8)%|K3R6sSFg{t}xLataUg_A-+tNj=`cWQLvGxj>I4y_~!|@>)jOPF?=jD@b zMi(y>Pk*Xoc4BF%Rdpf<)GL72W=yyND&Pa%%c3JJIO&4QEJdyYixLqf2rxq9cYAaS zjLGPYpS-Zb5t|mpwja)3+&w}SF8v~`p`ELPW!|(-NgbA|l7- zpW9pMZd7M+x%SKddorgQYVO~EHmhJY9~>RaM`#w2Rj_)NR7?$K85o$^L79wqI5@m^ zs2gDi)uv!p@3~CMkUQ76B-qV6Dhl6yh7`y@D)$toSL-o+V#MAV8#a^wQNcWI;@_;l z;Ftk-EAKnK!41MZoz!*1P<iVCA|F+)^y+T~g-QJfSsYh_X$M?f;HWnV!$79y$2=&k|dG`9k zy}i+u^E%k~lT+)^(}^03Gqj#aH{|xpEi=5I%k*yZ&}#VWz!xOlS1xmKm=~w8V_K}B zGSEXlY+SnvLIm!h$UKR0;vU9z|CJ4g?;QDkHVPARkHheh-9Y|>d^1~6awlGuxI`0T zp5@ZBC6!HZ#_-TR1k;6qzpWz)h73y!LV5=oH&;k`WSFhWoCS9iM17f)ODd$*aopg; zV!EPz`g^yhSM0&a(p>ojeG+5a;UG-0RD+^?S)%%gDTFaL9MVj_25Ss8Hzpf)vxwHZ z*{m$6HDth61sOBucvgayiidkh@Y^(O6ihb+Yvz?+3jT|CzlT z@t(=nB>()ql7A}vK>!92ZHyKv-e`_mK9?M2MRNT z@P+`fGmGruqp~ACVz*soKSmLaPmKfzddc9Kb5pX5^JIN6JK4;JhuSKkEAc%ltfk?g z7+ppn2oN{*!rSEhBF7o?6Zu)K@GZZ+bs(=9a)BVhp76B;%{~iJdO@fYlzTo2c>+z-d@DsP z#00TSHDd9E`hBwNaCk9Dqg>SIgbwMyeNnH~pahW=qcT%4K zXs0By4$fYL0tZ?sA1bBG=V@6{-ZKiYbr@{3W^xZaMj2gJ-vYrs6EGX7N?um z#dUPNM;RdRsL#6_k>pp+V*>6U*QW<05z^civ zI>v}}#V5ASK#Hjw;Of}UBM?s#us`&0M@-GarT`Ya>P0(E z3=Bb$!Jjg4Z9&0H_WgNB5S@8&-y68Pa?ckFead{s{s09=R^e3-7{FBuB<{dUTftom z7W^8}?c!z7bH?702NnW!AFvBzLjO@39ao(50_n)yO5Q02bSs{duaLN_FiVW7 z$0UG*Q5p%4QDjBtBp&Wyi>MM_+N=$e7=4dxs@JpN38FVQnx8s18!F6Yj(!IqG%;YQ zQ)|HCVi*zb+&u;>LSw9P0hCjB{N4tPCQW$-7V|<@*E0E4PMv_qJ2u_dWJMOksD%Nd zN_c5=RD%T@prATSwarWK5~b7alAWN5f={!6cY)gAs$&Wa{m)TUOTiy9%KF(_(Eig% z|Mh2#kUCAA>_pu*_w>_1{}t{^4;~bMkaw0;q0?Yy@Titls$!^q2e6pC-m1Jbn*G7L zaAP=Jy<5eNtxuBHJgmS`x(XP&q!)Q%4Ss;dyVK3`T<=xSFsbYrIAQ7J5D^625%2{T zsEQGQ_^Tm@eaeBc>YLMiOTI^mFn+!YZu2cH5hHA}bUdecpzUj-PhyCcMOFTXb7K#& zt$@v8)K)P1_KCH`moHzs8a`VG6_|ZyFuix&Z0c2<>A``$82$>r(Rs&apzTX3N}+-a zXY`ouO(1*pHh#Q42eAk?Xb=`Vzz7)l9+kk5e4(RsM>T1E9Ub_xzo~8?J1f;i4p5kG zP%YkRo%@3G_}rIf;mHK;CKRF12s+f-$43fg*;qZ@W4G2*LebKzI|8;Ivv4$uQlrYo zzH1jmgWE*w*)VD%MoYR*L;J!Jpo(k`{b63#vT`0A93ctgtc5pt+lNIUg{O>bEcAvs z>8=0-sKD)7003SL<)xZ)YJDE#0!fm5JLxNc#!rW)1wJR>LkWTEkyCnrTIr$tDEt|} zUbfS!L&&YhZ)IQ_c;}vJ{`(>z#g{?&)OFyv)f4@tk9#NyG7|%_YwvY{k+qU|AwdMR z2ysrkCeVfnB71N9;z_(nL72L3N($+xPjqe-JCYcSN4Vs8O@KZB?MfN_d=KUKhWJz$ zNjlTdGkpKM6xCJK#?zLRqyYIF>>!{PWVVkKF(r^GmTy5DdZ16NJwa-_<*`079^#z} zDpV3Z!xUCp%D^GgcE=3MUP;u?L*q=Z1+aIY=-&<=57?m&=b)d-56cSdUr$Z0?;4*w zi?|-J;;n{5PV=eb7&hW;Ga1L3ojTNCy&#bIui+dfquKRh$SC`T(E3b7(tjOY!~(hS z%g;BW4AA`D6p2R*>tt$Cn&w`F;(`-WTog#^NX4_!?1xq8()4kG$?v>4I(QRAtDrA@ z36o46CgMW_5l`$m5TWba5lJ)giAk8 zd=^Cu^F>JoT#;)V(1q*v#!HL#|LL0e+T<{-WlB8<)KN* zQSKCch=>r3tOy9J62Yn^jfCX2+Oub1Sf!d5aUG`C#948UoVv z=vzJvIR`apEkNnJQPJ2}%xe6Q?Sh z&BQQ;GsgTG%*IcH(X*{e_Sb{E(C_yxoUE1bC+xx}q!ZSL4=!k=eUdT4i1 zxON3(PnZP7zBud)2c1SEoEsh-({auv6vqHn&B(ypcbvO^{~w}sO1VqqO4sxHqF^cH z%6>(VG`T0L{ibLl9eu52HyVy_^qUi{FS{2R$l+i$Gg%jS zfhy36>DaXsE!o6&vg3LGvn`CuZ03J0e+Y z=G$0RErGJZL8JbRq;zWlA{&8jK)LK*yfoM4y6S!to%K;r9ngu{03JXUN{zM06J0mM zX2~I@Y0SVlo6orBZm?fGJoK&$cYkB4gVG8o?_2NmWt-8}%#{9OOo(;S0vS;YP<}zX zU)9hJCnZFU!gm#&PE zsQ^0FEhSXWmHFH-Ei(^>SV`xyEtGT}&HCJBq%*vpP0W=mm#Bo^JHu!gG7PNRXC+^% z(LSg;0_*;{!fLE`q-Iar-;qo&e>ST!6DdZKCTmAD&#e*psdvllP}pu| z3e40;b?oLOB2SvM0~;A};Y~2@$f(JUeipmj53bGk7hsO1@n4p1Nrg$AB{k_{u&O{^ z*#`O|%{EYX;sEP7Gwcdg<}sY5a=HD8j_%_A;vAh_`pLdXW&73TrA0btcj~C( zv)7n%Fc88=h+-X3aCpwl`@zLMdJ>C2@QBGui!dsw0`$d#(JQ!;RwV^FcvnniV9N@% z67(Ri1ZSyWa<0#3eKfp~d;_%65TR0)umGmYKRd(f&G2Tv9Pqjm2^PoFiY4OgOpG84 zKZh)|C`i{k*Z3Vya5C3&FihOE`(Y;E_ScTwXX2AoLay+!XIVL+{`60V&oFRO>H0mE z)RLA4zgcNB!$VQ<}Ad#^eY^gF~P4l}`pf zmwH%$I3`CW7d{&YSQ<=h!>B@0!4PWZRrEsR^LZqhuIPgU@07BoP8|lzE(9Y8V_jjR zNsR61LRXs*OC$K0A-dng-qGNx*shZcz-?zX#FjesH<(>4!kbPtHmJqP7#LVcb!P41 z2iaMTEwSaTP%f8NrRRUX_wtEbu9^=*nPJE3Fm$mL%T)6jaD>;awS46( za}|KHrRsL49ZD1l<*rEW*0PF12g4%R*We;9lScyTs*ts_3D9?LaRtAOlw@rVOurj_ zr1jTZv##!cx-u7Q+|SwXqO9?@%FIRftUqM9o1D`r>)mBt@y#%7MQ?%_pXUzdGRfGz z!vS9Qb{4Ra_~p6a@$R^~YFH*D6Lz_ie6b@Nj0hFbPSnd(*HSGC`gDd&@wI8UB z949fe!g2?syK?sV;8sBEp?NS0)+GBdzT%I7Zjrh;S8R=8mAQ6n3$C%Aqm0G*Bh}A6 z)Pb1cvxq4AobFRskSx)$raB$trkOdz2H4Eo3&)eAtwkFW+{crC^*{m~?WBK}s*;Gl zIpf#c0xOi&$HlkcvP4UZn2xP~1XB~l@m3@7$<~NgScSFx#|i(-uWx0voI9j%m@wWF zCsRc1>tnxMFfL*8YmWNK*iCx)4w2-qCb8RX#B)G8ik^x2EG)t?7TN7ULYgKu71FFg zkrHSBN z_GjCRkTfLnU>L@#n7o20vbd+1dU(8l$&re8!GZ@#ha=$U5#Z3#Bzaq)l#;Wdn$>TB zzv{V?sCFNMn@AF*d#A!i65vFL zB)|4sCC^BKLkb1JWkig`vLyo?B0k8+D2aoTYFLl*OS#Dg{=}z2ER#G#c~#8fnhopL z#`!T!bklR|n&@uB?KHu~DZ)pm;rCYs-^E8lFXUZmpah9B_enmJI)~_r*jl+teEL2x zSpY07Yd9*p&LsPqx2_WI1uH%*5u%uh6&)Ktw{e@FmO!W%7CsU;bSBxtCk3(Gve&{N zF);)~?9C{6m9+*RJuAj1+8u@zNTVHzM4&~;O2Vu0MBJfMWWQZi8Fn94N`yQJ3U9>c zn5?aGwvRK{cL3wvk8YUei&>Lq0=ABit4M>rbU_mE1rN!mY4?a~t)ROLU@r%YWN(3InJpUrkmnY;Ld1q()@`?5h0zu&4h1}%O<7;FH zxvyjik@IC2!Gd>Fh&*98b?+(#o9zyl5D0>P=b(qkGlJdo7wq)IZBHtlQr$Ao#uRyR z#7Qw1**^zT42*x|05S)c;A;3GT+L?IB}*JCMc!Tdu`6=02DTFCoqDyp@I{IOwfMg& z_@oDf_4Ke>`d~0lyjuq% z9WBv9khmdzt~c%!yui{}@+1&e66F38X$n&>epO;>RWZ*kP4{j@a3jrJ%f8>Lyk%(hfT z7WTCSVrFz5;C8Qouo`*NeGO!F>@`vLlg}KKr-;#bJ>+&}_Vv*?c@i zDB=+~qX(~NXw&SZcM;CI5>RV=!@-b#8Ko>kN*&aQ(YLtVhG>{r6qO<4p-R0t`Q0kO zPZtOfBcTi`sQWaX53gf{|hqAGSPrJU(H8IZ$gc%OdmX9GgxslFmNgQI z+u2j9zTZ$BR#u;B1 zSy_G#LpYXmBH(Hu7X!}xzk_cSJlW?R0qlXosb@1fLqx%^MHDU;k^H=6fzYOFg|oB! zdmp>cqe>q(F>4r(6<8Lrdfb(4LAq5uz!b`z zodcITnXKgk&@$}UfRIfxHH=eKV?sAw$dR(eta5kinJhBd)fKX zOFVxVSKwepU;AI28=GwFfb*L8G8hHXzLbx`a;h2~sgpMKNAu8BxcF}m_$T2wjIOZ! zYq%A#WOXc-Tdv2j#-?zIEMfVW-bia3G$v`=WhK?sif0Ww%^}?^^8Tt&g_Y&f?%}ue zxm-!{G~?D+Q6``l5jD()F?m0uRT$>kyy4S^${z628bY5gsmb)^iKGvt{VgfWDyv5k zTlmew*7+GI45OwKjE3{byiQVO5WbD|AVa3d>yGOZuG+&jwDb=_Nv?^ z6QUt+5##2gvE^8!kzi;fW)cO$$~ZR%ARcccVwIMHH8@5liyR@hu-JZ#$Xk;a0EQ70 z(zd)}d@8zobI%j6%Q1{2H+Q*`hf!%oGvzdP!|`Ykjnnus!F_YvT2o~S3$mu);WG*b zzQW5-v`43lJ(B$QWPmYrP2Q*HzfKni^wr6!37W5OE${_g$oT@?W8WCPKYAc6$2K0O z5+V$G9cYh?^y=rrbVt+oWHdYFhjN%NEZpVm>^JhYd3k!ylg2(>GpA$blKO+3@ii~r z7tZj)4hG9;cdMSP1z|jpUFu|fko(o&o|~i#_7UVzljo$e9$hW{_=_;BuP>bnULb$<#8___lpBJkr4!(vy%%Q8a zNLXqtxfi1V*g1cwN*}o-v-6~n@Yk~EtxJZeRdxitLEJ>0;9!5(#f?n}R}g&P zDSinQ?^}Ls>;^}Kg+HwjG#@{#I))CXM|57GyPhO!y2E@t$D2Ig<~vXM4#5gBIv%D8-Pu2O%PlYRCmH5p6|fQ(7b@h(^bAl zpF#vNmlt=kSVWSxbyQ|V8Ht!gRIOKVBWPv%V^khiAMjGK*(r#T!+cHU8WYqHY;e&DSHvsa_e#YQ7msCPAIRk_#P8|vL zr(aO(2q~AlQ!DLW9XG$IV@K}H!1MHn(k>>tYM+g)_W8)=K}&c2oD`D~#QuBlA#&L< z{O(KhUbwd(?|m=!o+W#eKJzzlR!Gx*>!Nx$=gv88V)2*TJUBqJu0IlL4pff&4d34l zPNZ}S<5aqwsM&VmU?s!lT&}rC<*lYKRc^ZaZTDbfi`h&y{VvUQ;tCYGjO%Z4;3%{6 zwe8almvn^eZKeQ;A% zxEh=km0}DmwG}MOa`t?Tp9y-^jh8b^>_$p8@zL2G`>xP4ne!C@U%E!OuvmiC$+YM> zUR5#ZIY(Xo3<6*DTm=^jwSr=Lr6^BA=YYdGZ!Rh19MgaQ6jNBW)o+&NIW7ENEjcTQP2{E z80ebfahvjo`zWG7VzWAfuDs1A7S2q9cV2jH$4TrF& zj8l?n>erlHPNu0rHawvJ<=mUd(Q*36N=h07bU+t$+7xn!)nW*6D(Z|r0Ao~?_;C&hMO6u%Q?6c1$ zgCwo+yH_G2E*~_d=L^dJd)r6qk-FQ-kLa1feJ-l~D)8AoenIy%l-MGYXCWb52~40? zB-Qk70`deY;!-t{JW2(vZ$pTEepc|H4KDV0(r`Zmdu$0xv5d`|4_0B01Uk%3{qFt1 z#Fz$(BNzigplt0dQY_F_&74wXGFV}f2$+ub<#-I;mkeLyrK{7R3+JvB39Kx4Sx>N> zBom8=vd8rzX&4SvM<_*BBRiP|C4%KN=`lktlGBexc$zF4oU{aEn&M=X<)w4LV0dw4 z`vMv5+B*aa&rer7sdg3{h}rS?oa4(oj|_`v2BwC9|Dfq3S1|ap@wXildyKamx~MzMftQB zIrsIM7)O_KGA(>@(lgHxQkLAKZ3Ze(eRDwjl*SmLR@F4CmA-3CBHfmJGia65UFIL4 zn`qrgRBfO#$hWF9qIsQZSIp}#rP0gAm>)UgA8b4bjWCjCfPj@?D!3%~-xI2h_(JbZ>$pF@~CIwYM7RxktOy^5YAb#8FGbeG_%hC^_d)&;9oEo-+|E zpa&pRLv?gHX+b3q<2(>-B)HYe&1#TQu?xl7&$#bpd0h^qZPVsNH{NfZ0&foYBkM`Gp_g(w&B?E_Dgf=B4UmpP!sc3K9x z=RNtY9Dg3;%?9u4m`}a&`zM(6>Y+UcXW_+k#V;!G@l0m$I@e_-zt}dKU<0*Ibd^qz zd1sW(zA5So3Weh@=bMADi*yo`!D_aZea!JLl-PaT-9wSr4We?d*LEZ`upMusZ?T@y z|K-}FmHT7w57kG_q-iSTM>!2{EOWSD8Ai0?Zy;R5A<@1+n?+yggi`@{X4i%aR>-oGz75^_O+P9R)xAyt72{4t;sRf2g`0v2-I%P1vKMvvAbcl2DXWU_a*E-ByAX8ImA~Qy$eH4K$r|0=6bD;<7}9LwvF< zV?{?pM$q0I+wb|l)7B1SzwdRYqv~#FjzbYAo0xJTd@q+Dm>O`f()aDrBn=L$^q!+II z*zZqHllYzUQ}i4y({^ftug{P9}V6(pl@Suyfw-d+%YU*!E=LHO=;99YlZnml?5XxX{Y`j?6(T@SE6hP!q^U8p-;JK)(aqd-|py^=R(vj;)1Ulun z5U9G0azbY7ayXhGh*coGQyh>o5ZFujWc++x1eHi~D%}cAtuq6#%+>=#n@qo5y5Q|2 zozZRw@*H!b_XE4VM3UWpqUAEB!(`W=`NH$W2>4X;B;=Y>V36fY#FB+sLYs93BM{nW z>#k}J5>HDPPIsj=nA-w8CM`s4k~1_mKNF0XPx!qnF)J( z1TaVX;)4_Q3RVXb%6j`m-+X^^W=GkumWaP0^qtL;t1ottw2~~FWW%kC=`ey$<`3Y6 zq=`fXK}47Loxn0?EX0oeWgLqLy-BCcl9@_E-ILHojBD0$*K1kYuyeWi~y{rB35wgJ*^!Wv8Su)j<8^L)2!}J2mjO zToB}{Fg43XkXcjg6Gk~H-|q;K2bckI;HlsF%Ut;Co7*A{WnKn$^jp`;s{j(o7anvY zPl60{(d+&0J{%P4qPr4vATRa_f2e|W!|Hj5T_SH9@AUNlg`aI3FUb%oNKP0EqWXQvI8ANqjX;LL$r znwv|vD!5*KX6*SAvXRKHU;rR0xX|zq_ERY)dDA6;?HN{IW|?k4lhms&4~#aSAHj-y z6t)($!CGUK08weN@Yn^^y7TsV9uJp2uA9Z^d-;9Musb*sqP3E)CjfuiyXfww0ms z&9Iv0TVZvvLc&bwtImyh-i>o@S$l2*b67y`RfbC|lTK>7dgtA`J9Z;NuVF0SX%=>i z&dQIH`@qLH66M#R2xv>R4s9@zH+&W&E~`pUaAwqAmzb*q{=MdR1_Xsz1!)EGS3{o9 zTz0u|A&u7GRg)O(-c>aJ+`%9;7^juH`caiZZj z5WS40uTv@%UZ6_NDtKSO;!D$Rb?ebt-SW5nnocu{T1OVdD#1T@)EhN5{TvqS$zBE7 z)Mmd9Z~oM1NaAuEYo%xgFxc9cjMzW1O993DmV*jP11o~#e;W#KC$%?Vf`Ok)-S*9uQ3M_c$+}-Nqr^h2hfJ$r_ED75Dm3vR~9AAs>CYmAl zDS|px7#*Z3ayMU>I6?S84nP}Gbe9c8uJtk?7gmI{#+-umoP-=a>zrqNRTA&$yb-xq6W6v|38CaH8nu6nI>LW+ z4M>a^tN(i8*Ax2U}h>w7;F7az62gD!|WfI$JIHPlMuxBoV4cj^$^tH)Y z*Y=BKsn{SYX8+95mLpY+gWwreCSf~k_ze^&&`J>Kyoc^f9%eXZgP=&)Lj8MCppm=F z16yR+Tl-(Hy`Xn-ZVbw(QQ_Qn=Q$%RVm$|k#yH8ri3AEgJiQZtUQ0z0zF5ZAm|t!i zr9f*0Ny~eE%oZf6=cjC=WVeWVlQ0ZdKIYOYie9LTTo?5z?dT$HI*7vyrcImw19lZW z{)dxuR4Nyb(deq}x$$gu&8&Qdqd+M+TXh0KkLjA#WS0jX=lE)Kc>0Iy!renr=KYe3 zuDe;LhFVm{v^|8{rPQg+h-Lri^AEv)y<1$bkf@NllF~m}Va{<6TrKh#x^8y3B`%^E z+zZ{kN=^h){dXZGHvNJg79G3xr*Y+cqFySl5x3T21NXUb_|S%I9GbNY*C=!O{n{{5 zNI^?otC|b}^`Ek35lpmgOhe`&o}z(7Zo^7f4j)8CcN;+>PDfxxD+cIGjc~iT0rZ&- z5eS4+WZjHnEG8(iUs(t?fCt=|^%*l*5IQM^Ygf_02u4e9CW{PoNjFc25p0#sw7CU% zO4T<1u@_m^r5Er(;g@4%!di2*b!D@0#c%8n&_vQ36s5@j(ZqODU`EQ$a0y&|gEwWD zIv1@A)KjClit%Pv&kFl=QqTS7{_gnl8k6yvoP=|sQd8v$<|W}EyT@2QSFZ$8nd`-D z!@9uv%{@+HYt>eqwQ!)YaWuBNj)Rh?3NzybW_CqQ%ib3gPy8d1_exdYCS6ZKQAs9} zYKylY$&w{VBP{SKs_E-<>D=DQ31D@T&7QPjT|(6VFJ$S~yP&*U*H}*L#6dav>MmsoM!!?Qy%40_@5Pxho;+ zS+IH2?9%zQIHUY^4xD70vuT4;nYpN09|(!KUvP4eOENr3bZR9TwjBGIBgRK1Em@Gc zvuMtu*{r2$qXf!H^w_4tXo_N!Y@F}c7|6nAi9!TlV8P~3{wH?J2p35ldN15jeV*2c zL&l)Ocss-Ndo{TL9=l+B$YgME9KgebPV`9;Q3>2TgSY=aO~Ua5@mpIgJ=!h))cXu{ybbxZ>G<{Dgyt$WENrXz1e& zBEFjBT9r7imJ8S5a(6*&dr52OgJJlGD}pheg$>SNn6RSVIRC}I z#$HIB3CilVGYhwLF_xoaG$AMpvN94GOc3lhC}`y!i8)w)&^folfoOxds$mn`qRBN@ z+WfapK%9QY7#MEK5AVD!qcfdKGG(S4R!Vbnf07dcu7CqSQ)@gekfvU=W=`}xd9g!dHa`efV8~M} z#-T<(VJti#g3KF$-G`0SXhlw{3mgan#Mc2eB@l)BF^c;HD_o!g)fN2x{qJQ|+uynJ z)dJ70;lNUrXc~wbtkY0urY^;)usQSkH-xLZaYdCx?c5rAM=Pl6SvaW5z{7Jg{}zr> zXQlpN@F7cu!~b8vaK9t3#Va0Qecl%t7w9aJj!XARM~OYp10oQn%v@RXBgZa>e)))l z(gA$t%+3|I$IZf66DiJC`vCs?{~|c7$AtsUVwfk$h#g@(D55?ynv@?8am0;B+=Y)9 zLy~*UMQ`NLMiosx_K7>RnbHA;a74RUqa)hMJhGY<+(0Ku!3*l+>5}$XPIocwu?l-3 z&ysZJe?K&mbd`nZ5L9`&cGb++B@V;gr(Is`LmeguK?zJ%;89AAF9;5>8xlxc$OD+s z;N-^F;eg!q2#V9HDeGanb!zf@C>&jtuGDBe)CRa{)Y{fFq+)-VzK$4DdG9L19i=%oiaADFfd!w} z9S?^6D`)&7G~GCpwe#vF)OIQ87W1n24OBPOKadafGC%>434=+GdjB`rPDKcmnZx)?yvT zCybu`_>{vBdNQ()3!YTuCtrU5w3h8;))2_+xnUX>>hc|a4FDiO`cVWE;ge4L*DnRR zT!z+G!fBkhykiEyF5{8_400^4k&=NQ?;q2){0HS5DH?3uia`DWs-I_3bVH_DkF>#+x@2 zndBZ#pTeCXpFdCeqV@-#w^GysFvxUA2NKpDDL_-65svyY=K>7N#VQE)oC}LEH`R=X zD<7hiAm`&b`KJZN$qVRkyM@S+x(lZDX7^5<#^6C|T>>^>9ULHjl^6?r033c{F&U$d zQG%{{$4T)0G2xgndhx4OEo%rYv=J5rL(AQ`Retmz-uz-QGw z&rCBir@IoUF45zkU+b?KLcSuu>a>r)ow??Ker$g^hVYvk=lJD4!IC^JQXrA#0N5a} zDWNd|p)Ly}4atEvdQ`6rq=$K}r+vhMAN64(#+glYye^cgEN$YQgTq6so6N3b98lux zCBbT9Ro5>W{-#gUYt{Mk_iVsG_EJn+tf&vZ_*%948GN3CU-e0+g6pw)!?mkG*HVI6 z0j5*XB>?uWtgim)hF)QqM<#tcH@9}kmE`_>|Ju8@ux8g_2Vw0y)(&|pIo3r$Cv5Rq^+8vph7cn^?LhC#TbS@ofH}CMTmlc`0%$%ar~)%PGMT)HUV^{*ea&5U}X4nP}h1br>U5^IY4DV2O4=(!D4|udvG{#Dy5u>bHf!qW!;IX_wj#agIc8^fEY&LA*sewdfsmT6rx(Cqd@UUUYXt#l# z3t0{n5QS-b#S8BPYAXk@Eg%G^t(Qga-$o;YPtj(9iAZ~nB0J^MKKn}KWO=c_JV};F zt~SUrDmJynz=WmF!m0JTa2+D@tji2*GjZ~lu^^2l4zb1uGZJ_SVD2m7K}`|reD+Ab zQp4yIjJ+j5ghd->B=i0$G*BvorbS1X)^)Jg;1>h@<3YZXKUEH%D4UH$(ATx&w)*$B z>HBEi@*}@>fb+ay3z8#IBXO3`Sx*v0j@tcV8AUVqxwCcWcM69>o`5?1qLu4MhDY&? zlSD-8e~vjRIap`3hER=ot&rUyY4*k^ebwU-^~ zf*Lpk{+==MMba+&b$5Bs{6|}G2!1%I|Kh$N52Y7Hre=d8jSkqR5Ul^#>WO?-^aL_`m@BOPApYnpft~H(FX)RWgzYxx4>gIS(>l^aWgI{T_T(;{ zmE6lx5lK{Jh+TCmwZoXBR5G{cuA_$SXf0MM7Bl?aZp7hZnknY$M3{vKV3b>%IMYhy|p1EvCdY&gu-S&XxJpjzOJggJRwXQ|BC?&*!zBA`Rsn|(% z3??5O2KYv1%v(j+v|D8~?cJ`S%_gcLMQKA;emHs7f5A4aMj`x$I7Y$wTLfXR2d^GF zzR2jnXa7TK9a8dgIg%HP%gw`^#f?g(S}BX8vD9%}vq`T}2XB6}J!TE$u?Wf(kRl_G z3GF2s%MTz>nxb{>O1Ux^mA_Fo)9qmK6j*7F|2H^>MFY`@{2SLx0xW@j3D9tov9Paf zw^i?On-hl^kBofWs@a5Mq<`5%&BkloqoTB%!PGl3kJpmYk|C>gP#oaRsF3rp2R6)v zaEX@m6<~hxfDVv+{VSZbLC@EK2RbXw$pOzC8M1Qsn#uOVTn`F)Ne6@b^uDWL;@(`? z+_3I5-Ep4HypX9`vOUBwc12;7%ZgtBH$ce0xFgTgW6p8zhsI;4`^21YG1;nS2Dd;} zcZJx(mtGRlpMdr#F+`3SWeZzJtkTSWhes%CIgyp;z~kNS`;CqaETyUNuNrDEzIx)% z<#Vs3R{;mYf{u_D#ROBs*Dp_`-Bpv3j_+IEdTT1U+i3fm_k#hBq48(iK&f?yzuW$3 z0O`b5IgF(08GlttucDLPN@E3tAFOI`zABU*NxV=3vR7Q#+$oYXaHE)~;|7ZoEx}-; znL)IbQnOZoROb}oBlE4q-qX#V|`8)84c*LLnXIM-$rs~ei`dsCxM zDtp`q2milCdJ7Jpkw5=@?1{v)3Q{Tyi9 zdL;0iA}EIVyl8RIU(-}k>@PbmiQsmtfTM2&!Jz=6b%5QAWW#!y-sweADpyI#1DrCzt!p|Tm+F;7fnmQw_T zQ+80eGsp$;ZCesOfm%FuQ`bKe^jQ7z+20;W<+n=SEgu9X?+x$V!2pJ-4mit2vsrr- zoSQ^P06HEwKSQ$VfS0ON3fZ>VcTC9eCb%%hSZQ&7EnK5Q& zkWYhWe$X(!LWlDALz<#>6W8ex5Gm6?p#vDDVKJ3;i=FKR#lL+3<@<#AYKMZ6c7uATJ&Y0! zXGRJ&=S4O+l_iYSD1}#C!Y)G9I~VcTESbmWwh@EA&{i>ctqq%fWf^Ozs7Gno#1*uP z>1dI>0p5@Sft^CAC-VfyD+U@=-WYmT8H~19HKTR_EHOvDrZflV5!R6<`<7JcSJP@F zY}Aw2Q+=TGTU`n4iTOE45WRVpW3}~%t&4IjwC(G2}U zhkR&~j8HM6B(7MVIUT$pb!DC+F@j_!6O*ImYS=PGonne1**>QgbA*!fqf+KEQ|$li z)qJ%0hxg67`_pS>Y)|JIdQbiOibzZQrlAdG&-$hEFt5?Cl>)y2P=?TxxBH~gpr@B< z!yh}GrVh_Wbj2u`jZ&0lHo`6*Yz$pjD^P^}I6tEN@GDC5^VEJ79c=N)jO%G(LQCkZ zocaQRAh3xH3d}6CyG`hTE*l-^n003ThV&Jq-x^~wETtK3_j=f8KJs$_Sn`xI>z$Ng zHj(VxlMfpn!)7y_KQ_$GvBJe@`H|&7R+Box)Y$`3G7>l=#VQGtSJU4h5Cj&>Y;o+1 z(#K8cfUZjz8R7D`li?uhF`FnuiS~YjZ11@GAvKG06{+FT(irBla!$Z0o)`j$9_j>6 z<%FyZb7`E`q=vte#RawLju$ArKq&DV6r=>`e%>jF2mv-hXxd1S&_`@*K%qsEBnIh0 z;?LHFNcj?QezsI)T>c}-IN-MMbHSu5aV=G$Qb{F)IwGx*IwZ4d4&n4VurxppB`8A+ z+Ry`i(5t4Nz_YcR+GCHl;nE&MhLH4j-z!))#^l=?xIXVSYRLapFtL?T89gX_eQzrG0&LuO zyzbA?C?zF$v@cJNdW?$#zzusrYaZ6R6Cu8H=r%Stk!mu1*1CMqC@1MLvQAAZU}j{ zRz>M-)S-%uFk*?+aYxNCfc+Uz$z2)KWOzI|7r?W+#qkbQ^_p1A0pP>7fQiW*TvME! zrTU^Qf1Hpu5adc_wqtJzHyjf|m}C4sk;-z3>qWNO)@+>_igts5+v@`T+xW}0xl`+n zP}7$nfeTcwhrN7L&dSPIZ=gK@95`^OZVvqAUE?UyAVS4yWF%VcgDL_D1OZ}wx>$lT z3z|mjYW{@W8+9^8E|Nk(>1AoMH&*C{@ zMZY=B8EeraX-pnfnb(~KLHN34+IVD}u zGhvBK3W`SHpZ;;8?q5x8O-?=pj@i^PN)TEf7?zj-VjJh_N9Sr)GPqEG(t)NPUT_Z) zO!Gp!DnFM0^)Qbat?$~^C;Z0?Uunqd76%GovVh z_)6a>?=^HuR;0@C<8`9z$39Ns3N@(1o%BUd?^_<}t~`iyvOMHkQc2ECir63*Q^w$K zqGl4Ycq5U-%Xs?!N@gN%E?XsV9|-d(fz2-3OAg${{{8){zr8=P-#*8Ks(+B>uZxGT zE}zdjIDk1#s@-e40_1-Rajw;9P#v_}SwJAW1PyAq-+o61kh52##4&({N!rvhjoHx- z_zweUG=yH0`RapvuQjz&fj8~qbF{B5@mWe!=V%*o9beD#;1Km@O^}|8^{a7!d5aJXompt<#Ga9>r>-?5GNO$NvsT<|8qTN_c`mG1jEgmnzM?M^7!~{v7V%e!Ekk1Gx)Q2c=e%;&y z>#cR8CH0b*w*}Z}Om%>V>A4A={=&T9I#6+gnh7vgW)0M{*TO1Gw?;Q2ou~H(YBkuK zGsD5q27I$%sBIq(y*FlV47?A3ZC~glo7`(S0OUpD{ z`a+PT^qQ#o3^aPP-jFlT6$zL}&LzJP34Dz`m{ znzjQb>D-P2`47g?J+})`0_}^^@L?Eu{%|X?(SycAGBP{zdV19i{MjAU2V7n5?b~ zyLo5YD_ha_mxD_#_Cp0=QPr&Q+1epGg=Dm$+dD~4P+$YM8^pp+>u^_0EV`+`-!_|i z`QQR!sM`6pCAC0NT3@<(LJC)?LH$HPw=9?YS?q40L>~GK5xWjiNEagH&cf$^;QsL= zWVsiODA{3v)%*_%CKH(^3Xs*+@2&N+S?LJ^={MJ7$e{$~WyeZ0+lYaG;mqNHLUVK_wcjwOymUsQHjI8?|Ww+Z>o5$}zt&@K$&CY7m- zMj9NPkiwOXsum;$_Bumg@gBpW`PsurkK`b8P$=ZXrY7VeEd1!!25>5~hhr|2?f+q` zdVXkZ@&9!7W?o%b7(wQ_e?DgIYi9bi-JM3@5FmbhJ@#Tou>Kz1rN#Kl`D>xY(o$9K`->f6L>at+^S~;;3W}dvD7;}qS4c? z5M8xdOK}k+O!6YV1xcm|0A~2}2T~bG$4=4no)+#2!*Vhx9J0-)$9Gv;gG0elZPg8R z*$)x6`C3#aIwAnxz#IPUl^^Sn=Lutl$4P)qc;q1n&6%+SlZdtMcT9(cDYjj(rh9vF zW&6eDMd)HQA&L?ZMVM~FO+%g#X<^Are>9GaFk>P#tc%29lS3c z=5h{QJHJw(5%ZD6438`TOFyTt$gv{hR#Duo1tVuu)hHI6=~tceBNsqP)5}LVs#dc9 zf^8V|99UvkKQB3-LeI@DDq`Js6BE=@@>wFgmYHyA$q!4QD36%+1xd2p3%;)K7}sNP zE{eFcgY1sb`UdGyrl8COmM!Z*+(4P2P))BJv~hX`J?sX0hrNJQxHRe+ zf@aV&<1rRYH!iQ|Pwf?ODit=W)(L=2}cgeLNj9K8^W`sq76h={`h%&{;0v2c&^`M-hyUeQ&k5z6QCRZ~KiO4ln`-cmDA zu{iAZqqUS35%mwn67TV5C>}njp|sa>H?pIe=OJ;bxSl0W6fE>SXYq)M(n3=K!dJ7XKSSOSN;85b1#Z0dXW9^&qZm3ou|vYayl ztB?>8_+~z0#V3`la7kWagM<(r6rtTNe4fT_gOg__IUp-HF-)}lWPVaA%SyMVVjqg6 zyq*=w%VU&E!Q+<*1i_^``}I6>F|yxt;J_>2w1zp$x23emoQB1%^%R2kb=mIYP^+R?}7?f(@}CY{PXugHMa$FhM3Ir0QI)+*QJ6 zGsf`wppa7Oc$H5H2HdQB?FT-ap4;w7L<6>;z;2-X_2*;8j>Bd#=e9#NuIV`jm0Jrq zj&GLH{yHDf^~8_+7uMsjJ-u_BR!8c@0vtl_G^pusAQZC@{i}`LH^|XmRk->yQabJO z2UWA+Y2ls4nay+7uAe~beYcXFcVHkA)NUVF(c>K_96PCn89cM{*)9cYJJGRCb+#i7 zAs7-UR5p9boB=`8$u;l?fAfQkS_%9lTX~EgpA1Jl&(V_f;}>MB`$F<*>T#6rJYj5h z9VY{6JZeDkRUrRr-;obps2%D*Ih70Giu@NQ5Do>ZVpdy>h)MMF`Z3d%hl>C$1?C~z zJk=sij0)}`feTdl-MjwvB+wB_u2u9KTgjQ&>=~6Ps9_YU>LamGo$M7wl29SkMgrJV zPaq5BY~Ip1Q_vA_1?f5%Mr@EA5vzYZy>iw5r9`f3G2N;bGO@yf%jvjzGnQI8q%vtk zu z?^royWsovB|d$mTFOf`bruT@vQB1T3&d98>@@?>*$!9m@hn!9Oi&J_r?7DTgBg zIgqc7TSN2$-?9m92Z31d0-);ZxKvsJGKj#YUv@={sxFg>)XLvcMt##dd@K{@S)WE#ubXrCx^OZ_ z^0ER2!6SHDJc1{PO@&BG^#rgcVkW)e5AMOA-|Jy+zf!Jv>QgLglesG(Lja%r?}So_ zZzSCNuAWqgR+5J{9n$fV=}u0qZ;4fCckB69pjEY({nB5s&WktJcmAz655JoaqA(x@ zCbIdj^6498Rg<%fZ%tDs!RQ=|Ye<0=%}Xdkh8f}#bu&_c1E2gX#bo1WFW}(wx_>TF z=N~QkZi}N(n6)!k0KGa~nuwGg-a7?~2O-25b?Z7qyVEh*`qbeYSl;wd-w^+Xuicf9%gP>v+zHD`p zlU0UGsvp1+U5MZwWc}uRx|v5EHE#qpzZxjF+i3qdg1{g7mYXTaOe-qwran4o0xP^@ zPX^t}yHwA61xX2!p*&2`DAf$Lv~Nqr++)6(A!$JzavTLYlUCDqz_dPEZ`Hw$*qmEr zOBllgTJVIQeJ)g_2bmM}{l-Z#6Y&b{USlAiPCY5=W7wMY z*Kls;y*ui6YJ*`)FtN%55C46keo&O9E+Y(v^k!ma{r3qOVK;>+T1eMXgR=8Yc}y)9 ze*k&%4K4XXAn;X?NR~n}s8eu+!2yaCtgV~X&2JKb+ETQA>sQ4ev7@LI9cZMaXQwo& zn*%KQXAKtlrcQfnmKIZ8`Ib}{LI%lp|G^x48>U~#a+Bw$BsW7w#V#qlx+P5PuISCX z&?**cZ;W$Pt5!-1EO^~{bHT6Jtmp`Du^3pBuTnXi_8;^2;+R z2h%FiOMhD?#*Z(FbPuRaUy1A6uF61dZVS1uBr63lnqOdWUzRc8OTo>F2FTCSZ`5`3 zKTnEfajM_?b6XJplbU;|g4hor?+1YgKbd4|xl;II2CK?tuSq+6Lm^@}Db8<12^I27 z+4je(XW)+y?6)`ivf@0lyb~-*UA3!E_2whz-EhARUdXK| zw-7~%PKe2|E%{3skp>#ai?g>^pc!uOy9c``jz*(;Z@hup_Pt$QzgI$=n6lU?2{$>G zox#J2VHSQmO&N+x5}nRjvx_>}p4@CCPu1~B{g6}Bg=T{6aTUBDt@o1_I&`)ZeEV)2 zIa(b%&F-ZLW1eL;xf?rFDhUtKt~&)B2zu-Hk!mL|?pVY+uMcMc+mkY4#!h2)=jc)r z@SWnIv}auy%x*)$0*+Ewm)!8jgU!-5ys7^EW)sz2J06LmG&ndR-3xZtX$Fb3V&8Zh zF=7(Ce!ZmjgHnZN3dxeXHX)VT>(L>D^_mZim+@Mm;IuoDh!$P+#_(~rBWG#5zusQI zjxh{JB*kFiY(wT}sp?r0p=5$(fieHt0m|>TdC7iiIMi?|mil~gK;2XRZAp}Lz8xgg zi)w-78!SvfseTe%S`Z^g31zQPvf-w9#AfLxKexTU%|d7-N9!m)VhL!Wy7Qd&I&upc zOM@k3EduBPwcY}!zl!O%yTEfRR^4OCFrSvQ7&-5N*ezPfdIfyc(-l)%&oTvrQWfp1 zQ05B$vFeQ#U}E*z)`>+|m+*dV0z?R^c!Cppd@b@n#6uPMjwhQPks6Dz>1U0hw4?Qp z3>;sJ(y#1Ce1YpXRmPrUV3O$CTsZrp=r$}7Y7Co!kN0eSY9P(tu9r|nlr1Sz$hrRP zMeU+GYUZN+Z)0=ittp|Hj=*VLp}21Bx>E{WL?12T_n3$eHkaOSp3INkpV{L}?L()W z+l0F;OB$Wl)EjQF_!eAzJypw(s4ZsPx2Hats^?XDa^fm{IiDW9e4s{FXZpw5W{0T2 zZ5UxlgM1MwG}E)3p&|pM#E2j`0)r5amG$9QDvKg0WUOfwV%Pd~S41>XyDbHL=;4Pc z+lV8Ht>AN8xcr^gXHgF0lL(+&92X3mExQ%t|7jg8Vw+~VTZt8YvMvsg{@A)<_WX&{ zcDkq9s^$7iz?O`iIARrcS-H*U5zx1z@%nmkAQ-|`yxdTlW#vO?%56(a*|@W_rmEiq zw}tVr23f=>r+_G9G7lcqWef7pee!#?2s-w#NB)>GHo^*D6$Z9*Gw}02?{at6v%>X( zBN~-jYA1eM^vKAkqpB)}lhe-C17DVgXWOVxojqNb^Yx-qpyw7Ng8ll{Id;dxeEV&5 z=%WvOmLJuoXtQk6&^eFGnAS!PLckY4Aafihzl{de>758O`0^wB-EYAcng$$|k8ZDT z5}IZgHh)A-5lMxI$cMR55+Nr;WR#HTAjX$ls>mUfxsbS}$FYnY5r zBDyG>?6+0w(4S9w?W9Xonqe7NA5TfOQDFCdbaBqqcTaw@QSz(3?1?@T&0eB0_5o}M z045RuU~%!YC0jAlPPx0jAreK_t|ooJ7uMrTJ)@IRM3;A@o*n>(m!6-G+bC7)@q4W= z>_?=J<(gZap6*6GF>f+%#muGfm?=&enxl~p7Lbe*Shbe@w0B{hgb_>_EF_a( z!Bn1CLqs`}4)s?CIW22%qd6J=5M}Sz0p8tzx-UIZQDJda(>_USyVht=Jzo1w^`&Ov zkJWayWyxH2z7&c=h}iktEL2n|%#IrYiUxE)7(P+w;lXhD)zyzv&@#6*>x;a$omW+! zkCUF?KUzTW>EqbT<(gm%c|jZSklHj9rhLE8k0?tK_5pd<@q0gaJFSiDkEl5u)-tgjD@srj!74H** z{~7UJS0c{z21|sFvZgf78|%)){YGu`b{ic64Ba{gjAv$IO73Uz)zZR0;9#yeLf4PZ z6UrRBFqv>pO5L5vz$HOEQ!bO0gc==~W35S7A1^89iXdveexnU=FHks`RM3>P*Zut`3K&*)R4Pyylob9sw2Z!uUOuRq}wA&DTQ2 z%P$mTX@-rt?4{qc8Egu#)#ctz&gA+l9;Mi`bjNS6j#@%`1#`E=5s!i>7PAYj%d z#nm&`U~%MIVkUqtcgZh_fF)cw#*NxWlkj)Nxzu{IV}JeY{k zk()j6uP$e#;ck9`;9l;(Z0(xs_CP3QA_~;-#K5?h9-x=Jn*GVuFdFF(XT$Y3C>Wd4 zrrB9PArH@(U5fCn`N8r?E~2a=`G*H5V0on)8hl3LNIuxY>5G!btBFX{`KbGj7tizPkM?J=*F!_afeUb#?yM{Eg~{S7(lmks?XyudihLEI$zDp`&8YTk2@} z+?tt_jIcg}{5Oanb>*;SNve9|Rd~2LWL^aYlFe+U@WeM)46|Z<@4fiVI5uz6ucZuQ zOa)9`hd^W>p zi$Mlnm&ty3a&;mcPaJ{m#aHe2UteYRMR~taYS;$1VV}ppP6)-@wr{uT@=(G@1z_CdC9wjOgfNM#fV=sr$%JVMU+%;s# z36!IpVesqZPveZ(ouMTP_hKo2uGIC~;)qukhaehqu=8 z0ZJRVjmd9cYUoswQIf0gFC{1e)#^*dGLR_{E3R}e5}W-HVNqz%0x6pkP|$v$podwwn|q^ms5B8ipn^cx#-2;(Af)oh*RaE6+uuG++&~ z-n$n84|iHnK5)p(FjL19a_c~NInU6~5*-sxRVK%#y4IY?iK5S@sWiB%3XqJ@3;>E- z3`GFfx98lrdAaze*-%Pk(QK9}TLOCq_db^U!6b*8LWjUcpoZ8gTYAz(Sw&B+lS}R<^p?? zI_L5`NVq7FbNKhIi!0>LJc#mNadBB&S)%08=w$+0)(g#2AW1@{Q&r%q&1YGkgBq+C zkbb#%TT9d`NQY9MeVl@J{+Vhg2n;LD@|{&SmzUg(4jX8v>8y`m#!-=5wNaphi9{p; zNFakGg-{TWqRJ5ttYR^8eo}S$54ei^mq-HkQX%ovY8$zKSJ3ZXmKs>4xs$T*Ht-mm~9lHvrKsC z+;JLxbcV)W8;p6NOdzTVzN;+;jGKM(P^-zb#jk(1gdgwqRHxICb?**DR`>ydE-Ljl zYI%yw(-L~lBOQ4@pUpG-YFLJW{ux+QJy8PjRT;h9EoXqGG#c~rI@-o*p$NkG1;Pjd zc1wu=W0FJU0!L^s|85D?N4FwZG3amyTQ#IrdDEUOQi2C}+Hb&eiQz%R0cs9!gj(s- zI7XWx^)_L4{E{#45r2wUo875F-5JN)DK0b{Pw`E_og&(eOJJheFpG0*bJ4k?X*9IU zVE4-VrLO=8^2TElm>kb;&+fNpJ;|Ge;i*6c<~jp#()Qx9c<{32MB8@FzCO5Z8yYH% zbu?7la+$tsv;y^jkl&aEhsy7qujO~{OG~oPKRzaVL*Ku_jZK=Y${lf-?InL0 zdwPjcc9LBXpT5G0+*MAw`UpXM_DM>pst$ozAXazXV%W8a@kl7(DpYn;1F_P8w8#UE z6NXS%@#!@nKs=cRU?9POpYraEBpTWtfWtimKe|)Sk)QPyW*L6=^&kr>T2suX_!S#sC`x-1zJ5_gUgult?ZF5q;XSf-z||fB~y_Lo1vPTttgw~1uS?-fJ3DnXGr_; z$_Po9$UQ?*E0pP3J8WAmMnqkucLS0};Gjr7thMUso4q%6)H(PmyR`L&hS7u*jgxS0 zrB9hY%G`k&GiXsO8-E4@sK1)pEwu_n85sqzae-Q?3lf|#?Zk_LTA#*qH?Is=zMUU> zY`xB-xbhrC=?D<`3Y>cUbI_ht2KSS7bq3<*MP{Utxu|+B43?BUF0<+7<0+ntPjUo7 zjE|lv`*^tcVJO}8(8tda2twsj`yRl6Y_WSf{A*|%0D1^ils{6<6kCmhNU_A>1;Xj@fTD8oCX3x63`h6cgUkxfIRaOn55$fttp{Wy3 zV0tlCp2`e+y>d?gDG-1GM_FUWf4yy3gm9%uXDz142u($k64NL1laixKM`bzn)HM_1 zht=gI3!Ps%fz^ETVgF~Gu#2ISSg+!)6+)*j-Ei`W89tE2s&1D5fq0TH{_?YJF5OFL zdtSdB?k2TekH1!(;j(Ezy<1NPXA zyFHCCiC&LadETwUgOZN`wqdUXKvDxSr_Vy^kjXj$&tqoU_?6VaF?F^nXE3=u0(SF|ctY>mzy{kzyV3O1)g zh5f4-{7WhRmsDaWW=fYGOfVtRz^9ADdY)7QPdZ43wj7m0PgY#i6SV}%E+*0*k0+r9 zVL+|@*^^saWQ2AzIozfMU&%y;#*Re#MOq@hcM#wCWM^`!d2p~eH%yuUn?74gVs@{u zN*7a5Q!(fPl~#C zUf>>$^>LB&OP8b@xJT!jo$*EV@G}4Ds+XJH@9^lLJzE7-9h#jhB3#QlhRvN$f^&>J z>3(x^&aj&Qfg@*am|KZBhE*T)(;aT=E3(ll9;$j{m$g-;LL)f_e9d zJFP35hcLgA3j46o{65jal(F){V*x$!@;~0kLUdKb8!0>9XRcJUy2k>D1eX|3Sw+sWy(E>>61?6` z(}F4uH&Qxp?uIxNRE^fVPCloRl^_={e;{u@7BuY>cet%(Dtx;*|l9qmSGE< zZWN6=S|P7$lY7S#nyUSY_!Jk zQDaCFuyX5&1kw%T*B8!jBfJEHA$v2d{ad$V5A=@)aN#?mbr-QWsEh?t7WFziATnVWZD{irp!+d_3D<%Ry#Y&1(^*4RJ? zf%Fk|MCH@4v)A#YN}s;A2B4eQRnkh(sfntrJaxh=rOJ(wk!VY)pkGvY635N<~>Y<0$u@7UY4S@cZ6c7tIm0~f7l<7rc z5}o3s$cVP7tAtN&Pm6ng!KW#A0v-LkM{ucTlu8)7vvyNe=c5k84~sp^C$8 ztTfm&Q6%u|62U0`f2n4LtzA4I*&&p&tR>rC*x&)p8XqGFZ9-bmni{|MdREHp z1DT1@>diTfYl*hcjkW^l@CAYH%j*E8loVkl1P}9}_VwO~ji*_5%9)H#u?~@8Mm?-F zun&-h^`pJ35VK59%fzgZcZP5<&o;otPi+b(NlK*1slH;6D)s;T2?(d$xpr-h#N7+Djc}oFh0m5_+p)q#m9Y|P-$p`%6hXgUAN@$C z0EgU@JSif4)g}l)oIMaqjS&1GjYQO#zprW&fS(k_B8nz{SggX#EF#6AkBPjX$i}s! z2(z;Y<=$a;qlGMg9N#)?KOhN+8>gr}Y1>3?fkjo=b(2BW*9%I>` zm6xaOUp7%wGdV>2XzYr$P`s-cdL>XtBvGoGJR4x&3)tYNEGn`9UrlRAf9tjJ`cnX+ z?ymuCE1nh@{ihzL#|b%|p7eyB!!m`;9xH+~`c)3zQJ^Z^iVkN>)g-j>4f_>XUHoMt zMO#)ADHSC!2RUyX?{5ai1^-Et=-1-3L^Z)Tg%{Obzz`fnH13HSKfeXNe%Gh0&o0PH zX*_%l09dSxMxw1Gm8_IN!ljb&c3ujaKV(P_GsWJzkk#OrBRepKQxD>GkSA4;-R}c2 zw(GxL>5q8OF~6mhy6r9{Gm%Uh)1S z%(f)|tQXc-yis*srN#~N(nONNxJNVu6s1zH(PdUzKDv8iid-1?T&tc;3z^}QuanI8 zq^U4J*9Cj>ya&{mpN(eiDB)5`(Q!jM6G@)mx{UGFCH{j**=)j{zRQl$=FOQxg8tQFz>TN%2Ccc;-gP7A-2c>YAeaSz{qrQd6yWbql0MwbcS;en}j7N>$u70z|^Sk{1Ei_*ss1E^i&~ z_9XY{LeL=E%AEnCmZ+dDn*UT|6!Tbrxc~44CLTnI|GQ|PZ_`pRMZfde4bdy<;7~h! zK5=XgMbZ(#8Eon@z-prZFIB+LK;2~3#dBwggLz)*@bf3`pB`M@kXPp(&Qen&;!6GR zia@FwkFd5RAwyKBf=YZvpbSux_k$Bi*I@!CbOz88r%3app5b}TGv-Kj*A&;3T>QpT z^4~CqQ3zV5&BM@tmnTQ<>`0@0(`;+|n)5#7D*IJxNaAbkw`N3TeZE=dkCcFFig?eC z8T%E7pJIQ0VW%Sp2uI@0m-^^fU3<%$_cIiT^?$mJ4Wl&g&{yIKS;|VA|8msjd7(fe zgu`@AgQqctHa;!>kTkB}kr{#`P8%!-Ik?FZJ&Ko^YsK=sxoVa1bzIrixDAa9Wjq=u zs5O}yr-~sA=PfZ1%rXYGbcD6M;RWDfTu$zUxxGYmfvRV`%u^%)HV5}9MNveLI%TL+ zYTgUN)yn>bA}|Jy1U5ksKZV%;FyJt5B;}#TZvFZOq?)FW_Lvq5bcFN#C(TvpajZycMiuGpq)BaxyR<` z|L0U!-^bls<3f%{3ANRBFQQ_q(2Sbajy#|@bsl1)+U>*Xy+e^R0{2b7`7Zf36=O|L z8O0P%jX?}~TLz|sYV;ZI5hxf52ZNkAgS2{JSgY(QLj};VXLfJo!UZ7 z0yxs~QM3>d78QaaB|8eaGSM-Q;@rR#op+IQkBs#mUaMP=D;<6|2VEr2s45)bh>}M5 zR`OCF$7AyO0cX{jc@oBpl`ItafiTxc{CaV>T{~xa-vuhqll0c3s73kL!r}C%0uPZC z@W|E@tiW*sn=~ziLUEPnX^WAmaFlMvDptOYdLdTc_xZ&rSIM+&lBWEbU%(Snu*#8% zSe13<{szEe=hBoxULZI=QEgbx0a+0Vp8DEi@=E<-+cX8PFZlol`73>U;sq$%+%Xi( zVuW+VOx=Xf5C+h<$A8QuoY+jnnM^E@FXT)CwS5Cp1B2MRvA*t)ArT72(#b5M0?s`k;pg(t=sUA2ix z3~qXfvkf!Mu#GHiQ=vA>!ng4#teWrz!z?kl-5!nGyP>Y6==i#5A-_jQgbBU>tQNK( zR^-6tWs@qq$9b+mZYr2j*fRwiO?P0r43KthP?akmh1l`?m?(`5hy$Uiuv9|B-0K)|U zgsB=F$=!c6{baCD$NPN; z`G(m`se6t$o%rFIL;D^^q7*5#(eO9hQ1UGqVDn^6Kkxw=WH5K#DB{?{E}SV*-t!`D3@~tTy`D-rt^NLi0Tbf?!#nqF|JU1(MZAfD8WyG_Sv$*Y z7!ybq+qnr0fp5#Y7&I_d}a zP|`V|G!GnKm5(r|~5&Ce9t-0?G>?qr;f4-i4NCZa{rd+ZLg4cQ22 zZ)E!($1n^W(QYU0b$ZsE$?R#PH%=;$y%ET|!Nhhk5!Lnni7z5oWEH>NTHf|c>2cvFM#Zqj^e>35Ek;G~^O%+?XFI+}1VXAV0G?%Nj^H|*yIH|w*q zcPy_N=?uP!i!m_&0xFZH)_^}Ciq_$|X6199F81&nVfyoyb#$f@)-Vh;Ccs!kJslia zB`J-daq{FbK_(enMu#ZLE+R?0h}fBjuI7R#IHnlMFc1+9^Q}!XP8V%-fW^ZOE*Dxj zclSh2MD0?$=onwfCmYZ3neK=n{>0B50SHbW{@s;F28b2ic(VAE6X0&Oa)esd$3H*7 z^VszwxyzVn3N4I{6GT1#)o?WWjleSwuJ3j0#kLE44Iz z&+q%~y`9{Vd%y!wNzRB^J>GbLnu?m7e7OoB$rZp581l|N{-Xts63#Ehb(81`AK0)q zJW^9Ok8L+bsTyz8-0#Mg%Qx#vLiw3J>s+=M)9vnI9hH;O6H!*F!!S-f&m{N50#ncU z@f3~;3CW5J#waP*fJ>X&joHgGA7xDV z;?6;mpOHeKZNdhB!s1re`jHE@(St zWYSXj2?&zI{Mr>Gmox#!<8c;RC3^9PZMX^2Vt5-*dJ)fz{FZ(6@UedPnXoxv^}5~! z1uTM6LlzI1OXbD);L*Uv{n>*@KXCjS4}5ce{YO~#c{Z^h`0hH$&{;iKo(2C-2=ET^ z1VE1kHjvT;g>0{%E02-OId@u)3_t&i7>F6fl#CN^U0dft9jowwK5iz@B{}#fZ&YV{ z-Kn0mC>%Z0Ld;kNJvO7P9po+?mg_pOGVecDil<%DU01clNv7iBx3N!shxN#GzRNDo z>J7efiM6x-`pusHH&>m7Pro4K7YhoC2%*$MHe|AIR_^t@!1{z|OtdSlzpvfUb%aDP z9!j>Wi_SjUj#fvTn_2xo--qYHWEAZu0lT2 z#d^SbbzZ_$X*g!P~T%e`Ij}^Nu)sWSA`HkxZC__pD9y*QHijBjQ07VkjWg$GvyhB zAbdOzPkDNLn2WGq46%7Ip1M`lzGY%h?7p)k*?$V|;g*Kh$jQhgTcHf3)`+y9g+vQ% zbVr+qPF7d~yXQaO&$k7ur%50yUE0CKwJTmB9oaaf5<*(F4=>#N=y_$>@WB&?I~wD7 ze6w+Ss$)N1pPRl%G`4`TnA^X+^1`+i%r*ww1zs7ZaT3Vot*7yM;1Rc_{W}EwwBNTZ zy>4TggEsWhPgejMV~8TD$fI&{^g;F$qgly~!iTuRYk;!=K0v|0igrYvzpomi^oHZU zkMdt4ZNFQ(BTaoHA>ad`GzdsI0CE9<6afFRq-m-)scI4uB-7-1jCsD>d=WdK~T2IKvwZ)cTn_x5E@6%np|*M#Y2)p+xbSuV9!ku{=LEEV

P9nO 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%0AXxManda0z|CDu>un%xX|gRa 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 L1Z= - - + ### Prerequisites @@ -51,6 +52,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -143,6 +145,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index b728a632..b1931b9c 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -294,7 +294,7 @@ in `format` is also supported in `right_format`. The `$all` variable will only c not explicitly used in either `format` or `right_format`. Note: The right prompt is a single line following the input location. To right align modules above -the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/ar-SA/README.md b/docs/ar-SA/README.md index d424337c..3d4d006f 100644 --- a/docs/ar-SA/README.md +++ b/docs/ar-SA/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: التخصيص البسيط و السريع و الغير محدود لي ال"shell"! -actionText: البدء مع Starship ← -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: التخصيص البسيط و السريع و الغير محدود لي ال"shell"! + actions: + - theme: brand + text: البدء مع Starship ← + link: ./guide/ features: - - + - title: التوافق أولاً details: يعمل على أكثر موجهات الأوامر شيوعاً في أكثر نظم التشغيل شيوعاً. استخدمه في كل مكان! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: قابل للتخصيص details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/ar-SA/advanced-config/README.md b/docs/ar-SA/advanced-config/README.md index e33ec300..6949bb2a 100644 --- a/docs/ar-SA/advanced-config/README.md +++ b/docs/ar-SA/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/ar-SA/config/README.md b/docs/ar-SA/config/README.md index f00c2b14..ca6c57ff 100644 --- a/docs/ar-SA/config/README.md +++ b/docs/ar-SA/config/README.md @@ -158,7 +158,7 @@ In the second part, which is enclosed in a `()`, is a [style string](#style-stri #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | الافتراضي | الوصف | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/ar-SA/faq/README.md b/docs/ar-SA/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/ar-SA/faq/README.md +++ b/docs/ar-SA/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/ar-SA/guide/README.md b/docs/ar-SA/guide/README.md index 0c51ea34..52335d7a 100644 --- a/docs/ar-SA/guide/README.md +++ b/docs/ar-SA/guide/README.md @@ -40,11 +40,11 @@

- الموقع + الموقع · التثبيت · - الإعدادات + الإعدادات

@@ -171,7 +171,7 @@ - **Easy:** سريع التثبيت – استخدمها في دقائق معدودة.

-تصفّح مستندات Starship  ▶ +تصفّح مستندات Starship  ▶

diff --git a/docs/ar-SA/installing/README.md b/docs/ar-SA/installing/README.md index 197cade3..fa8fd67e 100644 --- a/docs/ar-SA/installing/README.md +++ b/docs/ar-SA/installing/README.md @@ -5,7 +5,7 @@ 1. ثبت ملفات **starship** على جهازك 1. تنبيه موجه الأوامر بإن يقوم بجعل سطر الأوامر ل starship وذلك بتعديل كود الإبتداء -غالبية المستخدمين [الصفحة الرئيسية ](/guide/#🚀-installation) سوف تلبي احتياجاتهم. لكن، من أجل الاستخدام المتقدم، هناك حاجة لتوجيهات أخرى. +غالبية المستخدمين [الصفحة الرئيسية ](../guide/#🚀-installation) سوف تلبي احتياجاتهم. لكن، من أجل الاستخدام المتقدم، هناك حاجة لتوجيهات أخرى. هناك العديد من الحالات التي لا تلبي المعلومات في ملف README.md احتياجها ولذلك هذه بعض إرشادات التثبيت الإضافية مقدمة من مجتمع starship. إذا كانت لديك ملاحظة وقمت بحلها ولم تجد هذا الحل لها ضمن الحلول التالية، الرجاء أضفها هنا! diff --git a/docs/ar-SA/presets/bracketed-segments.md b/docs/ar-SA/presets/bracketed-segments.md index 982afb20..579d789e 100644 --- a/docs/ar-SA/presets/bracketed-segments.md +++ b/docs/ar-SA/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/ar-SA/presets/gruvbox-rainbow.md b/docs/ar-SA/presets/gruvbox-rainbow.md index 798ea8a0..73dd1e01 100644 --- a/docs/ar-SA/presets/gruvbox-rainbow.md +++ b/docs/ar-SA/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ar-SA/presets/jetpack.md b/docs/ar-SA/presets/jetpack.md index 0f52a9a9..c247b97f 100644 --- a/docs/ar-SA/presets/jetpack.md +++ b/docs/ar-SA/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/ar-SA/presets/nerd-font.md b/docs/ar-SA/presets/nerd-font.md index afdb1107..dd349175 100644 --- a/docs/ar-SA/presets/nerd-font.md +++ b/docs/ar-SA/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ar-SA/presets/no-empty-icons.md b/docs/ar-SA/presets/no-empty-icons.md index aa4a211f..2d262cdd 100644 --- a/docs/ar-SA/presets/no-empty-icons.md +++ b/docs/ar-SA/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/ar-SA/presets/no-nerd-font.md b/docs/ar-SA/presets/no-nerd-font.md index a70e85e7..c3fb3636 100644 --- a/docs/ar-SA/presets/no-nerd-font.md +++ b/docs/ar-SA/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/ar-SA/presets/no-runtimes.md b/docs/ar-SA/presets/no-runtimes.md index c0805d11..218d1ae1 100644 --- a/docs/ar-SA/presets/no-runtimes.md +++ b/docs/ar-SA/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ar-SA/presets/pastel-powerline.md b/docs/ar-SA/presets/pastel-powerline.md index a480c691..29481c8b 100644 --- a/docs/ar-SA/presets/pastel-powerline.md +++ b/docs/ar-SA/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/ar-SA/presets/plain-text.md b/docs/ar-SA/presets/plain-text.md index 1e17b4bc..2a075171 100644 --- a/docs/ar-SA/presets/plain-text.md +++ b/docs/ar-SA/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ar-SA/presets/pure-preset.md b/docs/ar-SA/presets/pure-preset.md index b75a0056..68b7b49d 100644 --- a/docs/ar-SA/presets/pure-preset.md +++ b/docs/ar-SA/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/ar-SA/presets/tokyo-night.md b/docs/ar-SA/presets/tokyo-night.md index 0508ae85..ee7443a7 100644 --- a/docs/ar-SA/presets/tokyo-night.md +++ b/docs/ar-SA/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/bn-BD/README.md b/docs/bn-BD/README.md index 7db34ef6..d467d2fd 100644 --- a/docs/bn-BD/README.md +++ b/docs/bn-BD/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট! -actionText: Get Started → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট! + actions: + - theme: brand + text: Get Started → + link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/bn-BD/advanced-config/README.md b/docs/bn-BD/advanced-config/README.md index 2e6c8aa0..385ba21c 100644 --- a/docs/bn-BD/advanced-config/README.md +++ b/docs/bn-BD/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/bn-BD/config/README.md b/docs/bn-BD/config/README.md index 1619411e..328ab8c4 100644 --- a/docs/bn-BD/config/README.md +++ b/docs/bn-BD/config/README.md @@ -158,7 +158,7 @@ For example: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/bn-BD/faq/README.md b/docs/bn-BD/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/bn-BD/faq/README.md +++ b/docs/bn-BD/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/bn-BD/guide/README.md b/docs/bn-BD/guide/README.md index 09df2111..96c49a1a 100644 --- a/docs/bn-BD/guide/README.md +++ b/docs/bn-BD/guide/README.md @@ -40,11 +40,11 @@

- ওয়েবসাইট - · + ওয়েবসাইট + · ইন্সটল · - কনফিগ + কনফিগ

@@ -171,7 +171,7 @@ - **সহজ:** অনায়াসে ইন্সটল করুন – মিনিটের মধ্যে ব্যবহার শুরু করে দিন ।

-Starship এর ডকুমেন্টেশন ঘুরে দেখুন  ▶ +Starship এর ডকুমেন্টেশন ঘুরে দেখুন  ▶

diff --git a/docs/bn-BD/installing/README.md b/docs/bn-BD/installing/README.md index a52c2e70..3004e397 100644 --- a/docs/bn-BD/installing/README.md +++ b/docs/bn-BD/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/bn-BD/presets/bracketed-segments.md b/docs/bn-BD/presets/bracketed-segments.md index 982afb20..579d789e 100644 --- a/docs/bn-BD/presets/bracketed-segments.md +++ b/docs/bn-BD/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/bn-BD/presets/gruvbox-rainbow.md b/docs/bn-BD/presets/gruvbox-rainbow.md index 49847d61..6b21ee71 100644 --- a/docs/bn-BD/presets/gruvbox-rainbow.md +++ b/docs/bn-BD/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/bn-BD/presets/jetpack.md b/docs/bn-BD/presets/jetpack.md index 0f52a9a9..c247b97f 100644 --- a/docs/bn-BD/presets/jetpack.md +++ b/docs/bn-BD/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/bn-BD/presets/nerd-font.md b/docs/bn-BD/presets/nerd-font.md index 2f81f2f1..c139da2f 100644 --- a/docs/bn-BD/presets/nerd-font.md +++ b/docs/bn-BD/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/bn-BD/presets/no-empty-icons.md b/docs/bn-BD/presets/no-empty-icons.md index aa4a211f..2d262cdd 100644 --- a/docs/bn-BD/presets/no-empty-icons.md +++ b/docs/bn-BD/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/bn-BD/presets/no-nerd-font.md b/docs/bn-BD/presets/no-nerd-font.md index a70e85e7..c3fb3636 100644 --- a/docs/bn-BD/presets/no-nerd-font.md +++ b/docs/bn-BD/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/bn-BD/presets/no-runtimes.md b/docs/bn-BD/presets/no-runtimes.md index c0805d11..218d1ae1 100644 --- a/docs/bn-BD/presets/no-runtimes.md +++ b/docs/bn-BD/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/bn-BD/presets/pastel-powerline.md b/docs/bn-BD/presets/pastel-powerline.md index 3a2ec86b..a718dbdc 100644 --- a/docs/bn-BD/presets/pastel-powerline.md +++ b/docs/bn-BD/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/bn-BD/presets/plain-text.md b/docs/bn-BD/presets/plain-text.md index 1e17b4bc..2a075171 100644 --- a/docs/bn-BD/presets/plain-text.md +++ b/docs/bn-BD/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/bn-BD/presets/pure-preset.md b/docs/bn-BD/presets/pure-preset.md index b75a0056..68b7b49d 100644 --- a/docs/bn-BD/presets/pure-preset.md +++ b/docs/bn-BD/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/bn-BD/presets/tokyo-night.md b/docs/bn-BD/presets/tokyo-night.md index 538fe7ba..5f944be3 100644 --- a/docs/bn-BD/presets/tokyo-night.md +++ b/docs/bn-BD/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/ckb-IR/README.md b/docs/ckb-IR/README.md index ec388de2..7a00da5f 100644 --- a/docs/ckb-IR/README.md +++ b/docs/ckb-IR/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: promptـێکی سوکەڵە، خێرا، و بێسنور دڵخوازکراو بۆ هەر شێڵێک! -actionText: دەستپێبکە ← -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: promptـێکی سوکەڵە، خێرا، و بێسنور دڵخوازکراو بۆ هەر شێڵێک! + actions: + - theme: brand + text: دەستپێبکە ← + link: ./guide/ features: - - + - title: سەرەتا گونجان details: کاردەکات لەسەر زۆربەی شێڵە باوەکان لەسەر زۆربەی سیستەمە باوەکان. لە هەموو شوێنێک بەکاری بهێنە! - - + - title: Rust لە پشتە details: باشترینی هاوتاکانی لە خێرایی و سەلامەتی Rust بەکارئەهێنێ بۆ ئەوەی promptـەکەت خێراترین و پشت پێبەستراوین بێ. - - + - title: دڵخوازکراو details: هەموو وردەکارییەکی دڵخواز ئەکرێ بەوجۆرەی حەزت لێیە، بۆ ئەوەی promptـەکە سوکەڵە بێ و پڕ تایبەتمەندی بێت بەوجۆرەی حەزت لێیە ببێ. footer: لەژێر مۆڵەتی ISCـە | مافی پارێزراوە © 2019-ئێستا بەژداریکەرانی Starship diff --git a/docs/ckb-IR/advanced-config/README.md b/docs/ckb-IR/advanced-config/README.md index 24f66b42..d70a7774 100644 --- a/docs/ckb-IR/advanced-config/README.md +++ b/docs/ckb-IR/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/ckb-IR/config/README.md b/docs/ckb-IR/config/README.md index 8c7b62f0..63ccc62b 100644 --- a/docs/ckb-IR/config/README.md +++ b/docs/ckb-IR/config/README.md @@ -158,7 +158,7 @@ In the second part, which is enclosed in a `()`, is a [style string](#style-stri #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/ckb-IR/faq/README.md b/docs/ckb-IR/faq/README.md index 34bac692..14362f66 100644 --- a/docs/ckb-IR/faq/README.md +++ b/docs/ckb-IR/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/ckb-IR/guide/README.md b/docs/ckb-IR/guide/README.md index 00d92ba4..79964b17 100644 --- a/docs/ckb-IR/guide/README.md +++ b/docs/ckb-IR/guide/README.md @@ -40,7 +40,7 @@

- ماڵپەڕ · دامەزراندن · رێکخستن + ماڵپەڕ · دامەزراندن · رێکخستن

@@ -167,7 +167,7 @@ - **ئاسان:** خێرا لە دامەزراندن – دەست ئەکەیت بە بەکارهێنانی لە چەند خولەکێکدا.

-بەڵگەنامەکانی Starship بگەڕێ  ◀ +بەڵگەنامەکانی Starship بگەڕێ  ◀

diff --git a/docs/ckb-IR/installing/README.md b/docs/ckb-IR/installing/README.md index 1b4d1333..b11ace61 100644 --- a/docs/ckb-IR/installing/README.md +++ b/docs/ckb-IR/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/ckb-IR/presets/bracketed-segments.md b/docs/ckb-IR/presets/bracketed-segments.md index 87ceda51..f8f51347 100644 --- a/docs/ckb-IR/presets/bracketed-segments.md +++ b/docs/ckb-IR/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/ckb-IR/presets/gruvbox-rainbow.md b/docs/ckb-IR/presets/gruvbox-rainbow.md index 83bc24e1..291e778e 100644 --- a/docs/ckb-IR/presets/gruvbox-rainbow.md +++ b/docs/ckb-IR/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ckb-IR/presets/jetpack.md b/docs/ckb-IR/presets/jetpack.md index d959acf4..2bae183f 100644 --- a/docs/ckb-IR/presets/jetpack.md +++ b/docs/ckb-IR/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/ckb-IR/presets/nerd-font.md b/docs/ckb-IR/presets/nerd-font.md index 1b4b42ca..00e541d9 100644 --- a/docs/ckb-IR/presets/nerd-font.md +++ b/docs/ckb-IR/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ckb-IR/presets/no-empty-icons.md b/docs/ckb-IR/presets/no-empty-icons.md index e3cef25c..d6ed61f2 100644 --- a/docs/ckb-IR/presets/no-empty-icons.md +++ b/docs/ckb-IR/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/ckb-IR/presets/no-nerd-font.md b/docs/ckb-IR/presets/no-nerd-font.md index d6b58136..979d0450 100644 --- a/docs/ckb-IR/presets/no-nerd-font.md +++ b/docs/ckb-IR/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/ckb-IR/presets/no-runtimes.md b/docs/ckb-IR/presets/no-runtimes.md index b02e7599..b7b1eff4 100644 --- a/docs/ckb-IR/presets/no-runtimes.md +++ b/docs/ckb-IR/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ckb-IR/presets/pastel-powerline.md b/docs/ckb-IR/presets/pastel-powerline.md index 615f1f1f..c761940d 100644 --- a/docs/ckb-IR/presets/pastel-powerline.md +++ b/docs/ckb-IR/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/ckb-IR/presets/plain-text.md b/docs/ckb-IR/presets/plain-text.md index 3884ca03..2522cf84 100644 --- a/docs/ckb-IR/presets/plain-text.md +++ b/docs/ckb-IR/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ckb-IR/presets/pure-preset.md b/docs/ckb-IR/presets/pure-preset.md index 2ac6fa21..178e4b7d 100644 --- a/docs/ckb-IR/presets/pure-preset.md +++ b/docs/ckb-IR/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/ckb-IR/presets/tokyo-night.md b/docs/ckb-IR/presets/tokyo-night.md index 798794ea..ae91768d 100644 --- a/docs/ckb-IR/presets/tokyo-night.md +++ b/docs/ckb-IR/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/config/README.md b/docs/config/README.md index 42e79ca2..469e0797 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -164,7 +164,7 @@ For example: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -210,16 +210,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/de-DE/README.md b/docs/de-DE/README.md index 6b2e0011..f657670c 100644 --- a/docs/de-DE/README.md +++ b/docs/de-DE/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell! -actionText: Loslegen → -actionLink: ./de-DE/guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell! + actions: + - theme: brand + text: Loslegen → + link: ./guide/ features: - - + - title: Kompatibel details: Läuft mit den beliebtesten Shells auf den beliebtesten Betriebssystemen. Überall einsetzbar! - - + - title: Rust-Powered details: Bringt die Schnelligkeit und Sicherheit von Rust in deine Shell-Prompt. - - + - title: Individualisierbar details: Jedes noch so kleine Detail kann nach Deinen Wünschen angepasst werden, um die Eingabeaufforderung so minimal oder funktionsreich zu gestalten, wie Du es möchtest. footer: ICS lizenziert | Copyright © 2019-heute Starship-Mitwirkende diff --git a/docs/de-DE/advanced-config/README.md b/docs/de-DE/advanced-config/README.md index 34f09cdf..f64cbbcd 100644 --- a/docs/de-DE/advanced-config/README.md +++ b/docs/de-DE/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/de-DE/config/README.md b/docs/de-DE/config/README.md index 32d6f4d9..c9b43645 100644 --- a/docs/de-DE/config/README.md +++ b/docs/de-DE/config/README.md @@ -159,7 +159,7 @@ Hier sind ein paar Beispiele: #### Style-Strings -Die meisten Module in Starship lassen dich den Darstellungsstil verändern. Dies passiert meistens an einem bestimmten Eintrag (gewöhnlich `style` genannt), der einen String mit den Einstellungen darstellt. Es folgen ein paar Beispiele für solche Strings zusammen der mit Beschreibungen, was sie bewirken. Details zur vollen Syntax findest du im [Erweiterten Konfigurationshandbuch](/advanced-config/). +Die meisten Module in Starship lassen dich den Darstellungsstil verändern. Dies passiert meistens an einem bestimmten Eintrag (gewöhnlich `style` genannt), der einen String mit den Einstellungen darstellt. Es folgen ein paar Beispiele für solche Strings zusammen der mit Beschreibungen, was sie bewirken. Details zur vollen Syntax findest du im [Erweiterten Konfigurationshandbuch](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -201,12 +201,12 @@ Dies ist eine Liste mit Prompt-weiten Konfigurationsoptionen. | Option | Standartwert | Beschreibung | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Das Aussehen des Prompts festlegen. | -| `right_format` | `''` | Sieh [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | Sieh [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout für das Scannen von Dateien (in Millisekunden). | | `command_timeout` | `500` | Maximale Zeit für von Starship ausgeführte Kommandos. | | `add_newline` | `true` | Fügt leere Zeilen zwischen Shell Prompts ein. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/de-DE/faq/README.md b/docs/de-DE/faq/README.md index 49cb1693..bfe3eb20 100644 --- a/docs/de-DE/faq/README.md +++ b/docs/de-DE/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/de-DE/guide/README.md b/docs/de-DE/guide/README.md index 7c0ceaec..a0b5a52a 100644 --- a/docs/de-DE/guide/README.md +++ b/docs/de-DE/guide/README.md @@ -40,11 +40,11 @@

- Website + Website · Installation · - Konfiguration + Konfiguration

@@ -171,7 +171,7 @@ - **Einfach:** schnell zu installieren – Betriebsbereit in nur wenigen Minuten.

-Schau dir die Starship-Dokumentation an  ▶ +Schau dir die Starship-Dokumentation an  ▶

diff --git a/docs/de-DE/installing/README.md b/docs/de-DE/installing/README.md index cdf0ac48..f21000a7 100644 --- a/docs/de-DE/installing/README.md +++ b/docs/de-DE/installing/README.md @@ -5,7 +5,7 @@ Um Starship zu installieren, musst du zwei Dinge tun: 1. Lade die **starship** Datei auf den Computer herunter 1. Weise deine Shell an die Starship Datei als Eingabeaufforderung zu nutzen, indem du eines der Initialisierungs-Skripte benutzt -Die Anleitung auf [der Hauptseite](/guide/#🚀-installation) wird für die meisten Benutzer ausreichend sein. Für einige speziellere Plattformen wird jedoch eine speziellere Anleitung benötigt. +Die Anleitung auf [der Hauptseite](../guide/#🚀-installation) wird für die meisten Benutzer ausreichend sein. Für einige speziellere Plattformen wird jedoch eine speziellere Anleitung benötigt. Es gibt sehr viele Plattformen, sodass diese nicht alle in die Hauptanleitung passen, aus diesem Grund sind hier ein paar Installationsanweisungen für ein paar Plattformen von der Community. Ist deine Platform nicht dabei? Dann füge bitte deine hinzu, sobald du herausgefunden hast wie man starship mit dieser benutzt! diff --git a/docs/de-DE/presets/bracketed-segments.md b/docs/de-DE/presets/bracketed-segments.md index 9bd67c54..e54eee4c 100644 --- a/docs/de-DE/presets/bracketed-segments.md +++ b/docs/de-DE/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#bracketed-segments) +[Zurück zu den Voreinstellungen](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/de-DE/presets/gruvbox-rainbow.md b/docs/de-DE/presets/gruvbox-rainbow.md index 3bae1429..7acbf530 100644 --- a/docs/de-DE/presets/gruvbox-rainbow.md +++ b/docs/de-DE/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#gruvbox-rainbow) +[Zurück zu den Voreinstellungen](./#gruvbox-rainbow) # Gruvbox Regenbogen @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/de-DE/presets/jetpack.md b/docs/de-DE/presets/jetpack.md index c7fa0e9c..f494e74f 100644 --- a/docs/de-DE/presets/jetpack.md +++ b/docs/de-DE/presets/jetpack.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#jetpack) +[Zurück zu den Voreinstellungen](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/de-DE/presets/nerd-font.md b/docs/de-DE/presets/nerd-font.md index dd807432..84e7d068 100644 --- a/docs/de-DE/presets/nerd-font.md +++ b/docs/de-DE/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#nerd-font-symbols) +[Zurück zu den Voreinstellungen](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/de-DE/presets/no-empty-icons.md b/docs/de-DE/presets/no-empty-icons.md index 5210cb9e..34fde4ea 100644 --- a/docs/de-DE/presets/no-empty-icons.md +++ b/docs/de-DE/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#no-empty-icons) +[Zurück zu den Voreinstellungen](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/de-DE/presets/no-nerd-font.md b/docs/de-DE/presets/no-nerd-font.md index 2b4b641e..48afd9ca 100644 --- a/docs/de-DE/presets/no-nerd-font.md +++ b/docs/de-DE/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#no-nerd-fonts) +[Zurück zu den Voreinstellungen](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/de-DE/presets/no-runtimes.md b/docs/de-DE/presets/no-runtimes.md index f13cb76e..dd77cd6b 100644 --- a/docs/de-DE/presets/no-runtimes.md +++ b/docs/de-DE/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#no-runtime-versions) +[Zurück zu den Voreinstellungen](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/de-DE/presets/pastel-powerline.md b/docs/de-DE/presets/pastel-powerline.md index a6361823..85cc15f7 100644 --- a/docs/de-DE/presets/pastel-powerline.md +++ b/docs/de-DE/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#pastel-powerline) +[Zurück zu den Voreinstellungen](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/de-DE/presets/plain-text.md b/docs/de-DE/presets/plain-text.md index 2b008e31..51a9e1d8 100644 --- a/docs/de-DE/presets/plain-text.md +++ b/docs/de-DE/presets/plain-text.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#plain-text-symbols) +[Zurück zu den Voreinstellungen](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/de-DE/presets/pure-preset.md b/docs/de-DE/presets/pure-preset.md index cd9e040e..d3b0b213 100644 --- a/docs/de-DE/presets/pure-preset.md +++ b/docs/de-DE/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#pure) +[Zurück zu den Voreinstellungen](./#pure) # Pure Voreinstellung @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/de-DE/presets/tokyo-night.md b/docs/de-DE/presets/tokyo-night.md index e5753db1..1c98b43b 100644 --- a/docs/de-DE/presets/tokyo-night.md +++ b/docs/de-DE/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Zurück zu den Voreinstellungen](./README.md#pastel-powerline) +[Zurück zu den Voreinstellungen](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Zum Herunterladen der TOML Datei klicken](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/es-ES/README.md b/docs/es-ES/README.md index 4f7de92f..c8b9b11e 100644 --- a/docs/es-ES/README.md +++ b/docs/es-ES/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: '¡El prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos!' -actionText: Comenzar → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: '¡El prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos!' + actions: + - theme: brand + text: Comenzar → + link: ./guide/ features: - - + - title: Compatibilidad primero details: Funciona en los intérprete de comandos más comunes de los sistemas operativos más comunes. ¡Úsalo en todas partes! - - + - title: Desarrollado en Rust details: Obtén la mayor velocidad y seguridad de Rust, para hacer tu prompt lo más rápida y segura posible. - - + - title: Personalizable details: Puedes personalizar cada pequeño detalle a tu gusto, de manera que puedes tener un prompt minimalista o rico en funcionalidades. footer: Bajo una licencia ISC | Derechos de autor © 2019-presente Colaboradores de Starship diff --git a/docs/es-ES/advanced-config/README.md b/docs/es-ES/advanced-config/README.md index 3944c29f..5f61d4fb 100644 --- a/docs/es-ES/advanced-config/README.md +++ b/docs/es-ES/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Algunos intérpretes de comandos soportan un prompt derecho que se renderiza en la misma línea que la entrada. Starship puede establecer el contenido del prompt derecho usando la opción `right_format`. Cualquier módulo que pueda ser usado en `format` también es soportado en `right_format`. La variable `$all` solo contendrá módulos no utilizados explícitamente en `format` o `right_format`. -Nota: El prompt derecho es una sola línea siguiendo la ubicación de entrada. Para alinear los módulos arriba de la línea de entrada en un prompt multi-línea, vea el [módulo `fill`](/config/#fill). +Nota: El prompt derecho es una sola línea siguiendo la ubicación de entrada. Para alinear los módulos arriba de la línea de entrada en un prompt multi-línea, vea el [módulo `fill`](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/es-ES/config/README.md b/docs/es-ES/config/README.md index 1f1f7365..757bcc0a 100644 --- a/docs/es-ES/config/README.md +++ b/docs/es-ES/config/README.md @@ -158,7 +158,7 @@ Por ejemplo: #### Cadenas de Estilo -La mayoría de los módulos de starship permiten configurar sus estilos de visualización. Esto se consigue con una entrada (normalmente llamada `style`) que no es más que un texto donde se especifica la configuración. A continuación mostramos algunos ejemplos de cadenas de estilo junto con su funcionalidad. Para más detalles sobre la sintaxis completa, consultar [la guía de configuración avanzada](/advanced-config/). +La mayoría de los módulos de starship permiten configurar sus estilos de visualización. Esto se consigue con una entrada (normalmente llamada `style`) que no es más que un texto donde se especifica la configuración. A continuación mostramos algunos ejemplos de cadenas de estilo junto con su funcionalidad. Para más detalles sobre la sintaxis completa, consultar [la guía de configuración avanzada](../advanced-config/). - `'fg:green bg:blue'` define el texto con color verde y el color de fondo azul - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ Esta es la lista de opciones de configuración del prompt. | Opción | Predeterminado | Descripción | | ----------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [ver aquí](#default-prompt-format) | Configura el formato del prompt. | -| `right_format` | `''` | Ver [Habilitar prompt derecho](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | Ver [Habilitar prompt derecho](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Tiempo de espera tras el que Starship escanea archivos (en milisegundos). | | `command_timeout` | `500` | Tiempo de espera para los comandos ejecutados por Starship (en milisegundos). | | `add_newline` | `true` | Inserta un línea en blanco entre las instrucciones del intérprete de comandos. | | `paleta` | `''` | Establece la paleta de color de `paletas` a utilizar. | -| `paletas` | `{}` | Colección de paletas de colores que asignan [colores](/advanced-config/#style-strings) a nombres definidos por el usuario. Tenga en cuenta que las paletas de colores no pueden hacer referencia a sus propias definiciones de color. | +| `paletas` | `{}` | Colección de paletas de colores que asignan [colores](../advanced-config/#style-strings) a nombres definidos por el usuario. Tenga en cuenta que las paletas de colores no pueden hacer referencia a sus propias definiciones de color. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -529,7 +529,7 @@ La opción `display` es un arreglo de la siguiente tabla. | Opción | Predeterminado | Descripción | | -------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | `threshold` | `10` | El umbral para la opción de visualización. | -| `style` | `'red bold'` | El estilo usado cuando si la opción <0>display está activa. | +| `style` | `'red bold'` | El estilo usado cuando si la opción `display` está activa. | | `charging_symbol` | | Símbolo opcional que se muestra si la opción de visualización está en uso, por defecto en la opción `charging_symbol` de la batería. | | `discharging_symbol` | | Símbolo opcional que se muestra si la opción de visualización está en uso, por defecto en la opción `discharging_symbol` de la batería. | @@ -2204,25 +2204,13 @@ El módulo `hostname` muestra el nombre de host del sistema. | `detect_env_vars` | `[]` | Qué variable(s) de entorno deben activar este módulo. | | `format` | `'[$ssh_symbol$hostname]($style) in '` | El formato del módulo. | | `style` | `'negrita oscurecida verde'` | El estilo del módulo. | -| `disabled` | `false` | Deshabilita el módulo `hostname<0>.
+| `disabled` | `false` | Deshabilita el módulo `hostname`. | -

Variables

- - - - - - - - - - - -
VariableEjemploDescripción
nombre del hostcomputadora` | El nombre de host de la computadora | +### Variables + +| Variable | Ejemplo | Descripción | +| nombre del host | `computadora` | El nombre de host de la computadora | | style\* | | Refleja el valor de la opción `style` | | ssh_symbol | `'🌏 '` | El símbolo a representar cuando está conectado a la sesión SSH | diff --git a/docs/es-ES/faq/README.md b/docs/es-ES/faq/README.md index 01c3d036..8da83d7e 100644 --- a/docs/es-ES/faq/README.md +++ b/docs/es-ES/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## ¿Por qué veo advertencias `Executing command"..." timed out.`? -Starship ejecuta diferentes comandos para obtener la información que se muestra en el prompt, por ejemplo la versión de un programa o el estado actual de git. Para asegurarse que starship no se quede congelado mientras trata de ejecutar estos comandos, establecimos un límite de tiempo, si un comando tarda más tiempo que este límite starship detendrá la ejecución del comando y mostrara la advertencia anterior, este es el comportamiento esperado. Este límite de tiempo es configurable usando la [llave `command_timeout`](/config/#prompt) así que si lo desea puede aumentar el límite de tiempo. También puedes seguir los pasos de depuración a continuación para ver qué comando está siendo lento y ver si puedes optimizarlo. Finalmente, puedes establecer la variable de entorno `STARSHIP_LOG` a `error` para ocultar estas advertencias. +Starship ejecuta diferentes comandos para obtener la información que se muestra en el prompt, por ejemplo la versión de un programa o el estado actual de git. Para asegurarse que starship no se quede congelado mientras trata de ejecutar estos comandos, establecimos un límite de tiempo, si un comando tarda más tiempo que este límite starship detendrá la ejecución del comando y mostrara la advertencia anterior, este es el comportamiento esperado. Este límite de tiempo es configurable usando la [llave `command_timeout`](../config/#prompt) así que si lo desea puede aumentar el límite de tiempo. También puedes seguir los pasos de depuración a continuación para ver qué comando está siendo lento y ver si puedes optimizarlo. Finalmente, puedes establecer la variable de entorno `STARSHIP_LOG` a `error` para ocultar estas advertencias. ## Veo símbolos que no entiendo ni espero, ¿qué significan? diff --git a/docs/es-ES/guide/README.md b/docs/es-ES/guide/README.md index 055832e2..852abc3a 100644 --- a/docs/es-ES/guide/README.md +++ b/docs/es-ES/guide/README.md @@ -40,11 +40,11 @@

- Sitio web + Sitio web Instalación -Configuración +Configuración

@@ -171,7 +171,7 @@ - **Fácil:** rápido de instalar – empieza a usarlo en minutos.

-Explora la documentación de Starship  ▶ +Explora la documentación de Starship  ▶

diff --git a/docs/es-ES/installing/README.md b/docs/es-ES/installing/README.md index 5eb18f71..5f457237 100644 --- a/docs/es-ES/installing/README.md +++ b/docs/es-ES/installing/README.md @@ -5,7 +5,7 @@ Para instalar Starship, necesitas hacer dos cosas: 1. Consigue el binario de **Starship** en tu ordenador 1. Decirle a tu intérprete de comandos que use el binario de Starship como su prompt modificando sus guiones de inicio -Para la mayoría de los usuarios, las instrucciones en [la página principal](/guide/#🚀-installation) funcionarán genial. Sin embargo, para algunas plataformas más especializadas, se necesitan diferentes instrucciones. +Para la mayoría de los usuarios, las instrucciones en [la página principal](../guide/#🚀-installation) funcionarán genial. Sin embargo, para algunas plataformas más especializadas, se necesitan diferentes instrucciones. Hay tantas plataformas ahí fuera que no cabían en el README.md principal, así que aquí están algunas instrucciones de instalación para otras plataformas de la comunidad. ¿No está usted aquí? ¡Por favor, añádelo aquí si lo encuentras! diff --git a/docs/es-ES/presets/bracketed-segments.md b/docs/es-ES/presets/bracketed-segments.md index d29f5274..a04c381d 100644 --- a/docs/es-ES/presets/bracketed-segments.md +++ b/docs/es-ES/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#bracketed-segments) +[Volver a Preajustes](./#bracketed-segments) # Preajuste Segmentos entre Corchetes @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/es-ES/presets/gruvbox-rainbow.md b/docs/es-ES/presets/gruvbox-rainbow.md index 9999e353..9bbef49d 100644 --- a/docs/es-ES/presets/gruvbox-rainbow.md +++ b/docs/es-ES/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#gruvbox-rainbow) +[Volver a Preajustes](./#gruvbox-rainbow) # Preselección Gruvbox Rainbow @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/es-ES/presets/jetpack.md b/docs/es-ES/presets/jetpack.md index 00381b80..764ef8fd 100644 --- a/docs/es-ES/presets/jetpack.md +++ b/docs/es-ES/presets/jetpack.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#jetpack) +[Volver a Preajustes](./#jetpack) # Preajust Jetpack @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/es-ES/presets/nerd-font.md b/docs/es-ES/presets/nerd-font.md index d3cd2dc8..619f58ac 100644 --- a/docs/es-ES/presets/nerd-font.md +++ b/docs/es-ES/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#nerd-font-symbols) +[Volver a Preajustes](./#nerd-font-symbols) # Preajuste de Símbolos de Nerd Font @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/es-ES/presets/no-empty-icons.md b/docs/es-ES/presets/no-empty-icons.md index d6521cd4..ea09599c 100644 --- a/docs/es-ES/presets/no-empty-icons.md +++ b/docs/es-ES/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Volver a las preselecciones](./README.md#no-empty-icons) +[Volver a las preselecciones](./#no-empty-icons) # Preselección de iconos no vacíos @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/es-ES/presets/no-nerd-font.md b/docs/es-ES/presets/no-nerd-font.md index 4de7d4d2..9bb9a88c 100644 --- a/docs/es-ES/presets/no-nerd-font.md +++ b/docs/es-ES/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#no-nerd-fonts) +[Volver a Preajustes](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/es-ES/presets/no-runtimes.md b/docs/es-ES/presets/no-runtimes.md index 36680027..b126d98d 100644 --- a/docs/es-ES/presets/no-runtimes.md +++ b/docs/es-ES/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#no-runtime-versions) +[Volver a Preajustes](./#no-runtime-versions) # Preajuste Ocultar Versiones en Tiempo de Ejecución @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/es-ES/presets/pastel-powerline.md b/docs/es-ES/presets/pastel-powerline.md index be10eff5..29cdbc39 100644 --- a/docs/es-ES/presets/pastel-powerline.md +++ b/docs/es-ES/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#pastel-powerline) +[Volver a Preajustes](./#pastel-powerline) # Preajuste Pastel Powerline @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/es-ES/presets/plain-text.md b/docs/es-ES/presets/plain-text.md index 93103a00..b2d97672 100644 --- a/docs/es-ES/presets/plain-text.md +++ b/docs/es-ES/presets/plain-text.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#plain-text-symbols) +[Volver a Preajustes](./#plain-text-symbols) ## Preajuste Símbolos de Texto sin Formato @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/es-ES/presets/pure-preset.md b/docs/es-ES/presets/pure-preset.md index 049e1136..081a5af4 100644 --- a/docs/es-ES/presets/pure-preset.md +++ b/docs/es-ES/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#pure) +[Volver a Preajustes](./#pure) # Preajuste Pure @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/es-ES/presets/tokyo-night.md b/docs/es-ES/presets/tokyo-night.md index 6218d6b0..af6ec4e3 100644 --- a/docs/es-ES/presets/tokyo-night.md +++ b/docs/es-ES/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Volver a Preajustes](./README.md#pastel-powerline) +[Volver a Preajustes](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Clic para descargar TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/faq/README.md b/docs/faq/README.md index 977c7ae6..3c2a1b88 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -63,7 +63,7 @@ prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected -behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can +behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. diff --git a/docs/fr-FR/README.md b/docs/fr-FR/README.md index 93b8d498..eb114c81 100644 --- a/docs/fr-FR/README.md +++ b/docs/fr-FR/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: L'invite minimaliste, ultra-rapide et personnalisable à l'infini pour n'importe quel shell ! -actionText: Commencez → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: L'invite minimaliste, ultra-rapide et personnalisable à l'infini pour n'importe quel shell ! + actions: + - theme: brand + text: Commencez → + link: ./guide/ features: - - + - title: Compatibilité avant tout details: Fonctionne sur tous les principaux shells et système d'exploitation. Utilisez-le partout ! - - + - title: Propulsé par Rust details: Profitez de toute la rapidité et la sécurité de Rust pour rendre votre invite de commandes la plus rapide et fiable possible. - - + - title: Personnalisable details: Tous les petits détails sont personnalisable à votre goût, pour rendre votre invite de commandes aussi légère ou complète que le vous souhaitez. footer: Licence ISC | Copyright © 2019-présent Contributeurs Starship diff --git a/docs/fr-FR/advanced-config/README.md b/docs/fr-FR/advanced-config/README.md index 20125095..55014941 100644 --- a/docs/fr-FR/advanced-config/README.md +++ b/docs/fr-FR/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Certains shells peuvent gérer une invite de commande à droite, sur la même ligne que l’entrée utilisateur. Starship peut définir le contenu de cet invite à droite en utilisant l’option `right_format`. N’importe quel module qui peut être utilisé dans `format` est aussi géré dans `right_format`. La variable `$all` va seulement contenir les modules qui ne sont explicitement utilisés ni dans `format`, ni dans `right_format`. -Note: l’invite à droite est une seule ligne, sur la même ligne que l’entrée. Pour aligner à droite les modules au-dessus de la ligne d’entrée d’une invite multiligne, voir le [module `fill`](/config/#fill). +Note: l’invite à droite est une seule ligne, sur la même ligne que l’entrée. Pour aligner à droite les modules au-dessus de la ligne d’entrée d’une invite multiligne, voir le [module `fill`](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/fr-FR/config/README.md b/docs/fr-FR/config/README.md index 5773f2c5..0791b5ee 100644 --- a/docs/fr-FR/config/README.md +++ b/docs/fr-FR/config/README.md @@ -158,7 +158,7 @@ Par exemple : #### Chaînes de style -La plupart des modules de Starship vous permettent de configurer leurs styles d'affichage. Cela se fait avec une entrée (généralement appelée `style`) qui est une chaîne de caractères spécifiant la configuration. Voici quelques exemples de chaînes de style avec ce qu'elles font. Pour plus de détails sur la syntaxe complète, consultez le [guide de configuration avancé](/advanced-config/). +La plupart des modules de Starship vous permettent de configurer leurs styles d'affichage. Cela se fait avec une entrée (généralement appelée `style`) qui est une chaîne de caractères spécifiant la configuration. Voici quelques exemples de chaînes de style avec ce qu'elles font. Pour plus de détails sur la syntaxe complète, consultez le [guide de configuration avancé](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ Voici la liste des options de configuration globales de l'invite de commandes. | Option | Défaut | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [lien](#default-prompt-format) | Configure le format de l'invite. | -| `right_format` | `''` | Voir [Activer le prompt à droite](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | Voir [Activer le prompt à droite](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Délai maximal pour le scan des fichiers par starship (en millisecondes). | | `command_timeout` | `500` | Délai maximal pour les commandes exécutées par starship (en millisecondes). | | `add_newline` | `true` | Insère une ligne vide entre les invites du shell. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/fr-FR/faq/README.md b/docs/fr-FR/faq/README.md index c7b201be..5b4bf74f 100644 --- a/docs/fr-FR/faq/README.md +++ b/docs/fr-FR/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Pourquoi je vois des avertissements `Executing command "..." timed out.`? -Starship exécute différentes commandes pour obtenir les informations à afficher dans l'invite, par exemple la version d'un programme ou l'état actuel de git. Pour s’assurer que starship ne soit pas bloqué par l’exécution de ces commandes, nous mettons une limite de temps. Si une commande dépasse cette limite, starship va arrêter l’exécution de la commande et afficher l’avertissement ci-dessus, c’est un comportement attendu. Cette limite de temps est configurable en utilisant la [clé `command_timeout`](/config/#prompt) si vous souhaitez l’augmenter. Vous pouvez également suivre les étapes de débogage ci-dessous pour voir quelle commande est lente et voir si vous pouvez l’optimiser. Enfin, vous pouvez définir la variable `STARSHIP_LOG` à `error` pour masquer ces avertissements. +Starship exécute différentes commandes pour obtenir les informations à afficher dans l'invite, par exemple la version d'un programme ou l'état actuel de git. Pour s’assurer que starship ne soit pas bloqué par l’exécution de ces commandes, nous mettons une limite de temps. Si une commande dépasse cette limite, starship va arrêter l’exécution de la commande et afficher l’avertissement ci-dessus, c’est un comportement attendu. Cette limite de temps est configurable en utilisant la [clé `command_timeout`](../config/#prompt) si vous souhaitez l’augmenter. Vous pouvez également suivre les étapes de débogage ci-dessous pour voir quelle commande est lente et voir si vous pouvez l’optimiser. Enfin, vous pouvez définir la variable `STARSHIP_LOG` à `error` pour masquer ces avertissements. ## Je vois des symboles que je ne comprends pas et auxquels je ne m'attendais pas, que signifient-t-ils ? diff --git a/docs/fr-FR/guide/README.md b/docs/fr-FR/guide/README.md index 81010479..917027fc 100644 --- a/docs/fr-FR/guide/README.md +++ b/docs/fr-FR/guide/README.md @@ -40,11 +40,11 @@

- Site web + Site web · Installation · - Configuration + Configuration

@@ -171,7 +171,7 @@ - **Facile:** rapide à installer – commencez à l'utiliser en quelques minutes.

-Consultez la documentation de Starship  ▶ +Consultez la documentation de Starship  ▶

diff --git a/docs/fr-FR/installing/README.md b/docs/fr-FR/installing/README.md index 73d78ce3..868152a4 100644 --- a/docs/fr-FR/installing/README.md +++ b/docs/fr-FR/installing/README.md @@ -5,7 +5,7 @@ Pour installer starship, vous devez faire deux choses: 1. Installez le binaire **starship** sur votre ordinateur 1. Dire à votre shell d'utiliser le binaire de starship comme invite en modifiant ses scripts d'initialisation -Pour la plupart des utilisateurs, les instructions sur [la page principale](/guide/#🚀-installation) fonctionneront bien. Cependant, pour certaines plateformes plus spécialisées, des instructions différentes sont nécessaires. +Pour la plupart des utilisateurs, les instructions sur [la page principale](../guide/#🚀-installation) fonctionneront bien. Cependant, pour certaines plateformes plus spécialisées, des instructions différentes sont nécessaires. Il y a tellement de plates-formes, qu'il aurait été déraisonnable de les faire apparaître dans le README principal, voici donc quelques instructions d'installation supplémentaires pour celles-ci, écrites par la communauté. La vôtre n'est pas là ? S'il vous plaît, ajoutez-la ici pour les suivants ! diff --git a/docs/fr-FR/presets/bracketed-segments.md b/docs/fr-FR/presets/bracketed-segments.md index 68a669b5..5c42b115 100644 --- a/docs/fr-FR/presets/bracketed-segments.md +++ b/docs/fr-FR/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#bracketed-segments) +[Retourner aux préréglages](./#bracketed-segments) # Préréglage Segments entre crochets @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/fr-FR/presets/gruvbox-rainbow.md b/docs/fr-FR/presets/gruvbox-rainbow.md index 1ea4af7f..80bc96dc 100644 --- a/docs/fr-FR/presets/gruvbox-rainbow.md +++ b/docs/fr-FR/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#gruvbox-rainbow) +[Retourner aux préréglages](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/fr-FR/presets/jetpack.md b/docs/fr-FR/presets/jetpack.md index 930d974e..9f1144bb 100644 --- a/docs/fr-FR/presets/jetpack.md +++ b/docs/fr-FR/presets/jetpack.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#jetpack) +[Retourner aux préréglages](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/fr-FR/presets/nerd-font.md b/docs/fr-FR/presets/nerd-font.md index 150c723a..d3713b2c 100644 --- a/docs/fr-FR/presets/nerd-font.md +++ b/docs/fr-FR/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#nerd-font-symbols) +[Retourner aux préréglages](./#nerd-font-symbols) # Préréglage Symboles Nerd Font @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/fr-FR/presets/no-empty-icons.md b/docs/fr-FR/presets/no-empty-icons.md index 4955ed3b..de83a7f1 100644 --- a/docs/fr-FR/presets/no-empty-icons.md +++ b/docs/fr-FR/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#no-empty-icons) +[Retourner aux préréglages](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/fr-FR/presets/no-nerd-font.md b/docs/fr-FR/presets/no-nerd-font.md index 28c73daf..4fc71532 100644 --- a/docs/fr-FR/presets/no-nerd-font.md +++ b/docs/fr-FR/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#no-nerd-fonts) +[Retourner aux préréglages](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/fr-FR/presets/no-runtimes.md b/docs/fr-FR/presets/no-runtimes.md index cdd1b7f9..c1ef40d1 100644 --- a/docs/fr-FR/presets/no-runtimes.md +++ b/docs/fr-FR/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#no-runtime-versions) +[Retourner aux préréglages](./#no-runtime-versions) # Préréglage Pas de version des environnements @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/fr-FR/presets/pastel-powerline.md b/docs/fr-FR/presets/pastel-powerline.md index 6688fe6b..2731c9d2 100644 --- a/docs/fr-FR/presets/pastel-powerline.md +++ b/docs/fr-FR/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#pastel-powerline) +[Retourner aux préréglages](./#pastel-powerline) # Préréglage Pastel Powerline @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/fr-FR/presets/plain-text.md b/docs/fr-FR/presets/plain-text.md index 9b3a89ce..bec80676 100644 --- a/docs/fr-FR/presets/plain-text.md +++ b/docs/fr-FR/presets/plain-text.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#plain-text-symbols) +[Retourner aux préréglages](./#plain-text-symbols) ## Préréglage Symboles en texte brut @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/fr-FR/presets/pure-preset.md b/docs/fr-FR/presets/pure-preset.md index 5b9fdf5d..7b1e4029 100644 --- a/docs/fr-FR/presets/pure-preset.md +++ b/docs/fr-FR/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#pure) +[Retourner aux préréglages](./#pure) # Préréglage Pure @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/fr-FR/presets/tokyo-night.md b/docs/fr-FR/presets/tokyo-night.md index 6c357661..c3b6bd4e 100644 --- a/docs/fr-FR/presets/tokyo-night.md +++ b/docs/fr-FR/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Retourner aux préréglages](./README.md#pastel-powerline) +[Retourner aux préréglages](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Cliquez pour télécharger le TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/id-ID/README.md b/docs/id-ID/README.md index 8ed8bf3a..6050e89c 100644 --- a/docs/id-ID/README.md +++ b/docs/id-ID/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Prompt yang minimal, super cepat, dan dapat disesuaikan tanpa batas untuk shell apa pun! -actionText: Mari Mulai → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Prompt yang minimal, super cepat, dan dapat disesuaikan tanpa batas untuk shell apa pun! + actions: + - theme: brand + text: Mari Mulai → + link: ./guide/ features: - - + - title: Kompatibilitas Yang Utama details: Dapat berfungsi di shells standar dengan sistem operasi yang paling biasa. Pakai di mana saja! - - + - title: Dibuat dengan Rust details: Menggunakan kecepatan dan keamanan dari Rust, untuk membuat prompt kamu bekerja secepat dan seandal mungkin. - - + - title: Dapat Dikustomisasi details: Kamu dapat mengatur semua detail kecil dengan sesukamu, entah itu untuk membuatnya sebagai prompt yang seminimal mungkin atau kaya akan fitur yang kamu mau. footer: Berlisensi ISC | Hak Cipta © 2019-sekarang Kontributor Starship diff --git a/docs/id-ID/advanced-config/README.md b/docs/id-ID/advanced-config/README.md index 098b5669..575a89e2 100644 --- a/docs/id-ID/advanced-config/README.md +++ b/docs/id-ID/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Sebagian shells mendukung right prompt yang mana dirender di baris yang sama sesuai dengan masukannya. Starship mampu mengatur konten right prompt dengan menggunakan opsi `right_format`. Semua modul yang bisa digunakan di dalam `format` juga dapat digunakan di dalam `right_format`. Variabel `$all` hanya akan memuat modul yang tidak digunakan secara eksplisit di dalam `format` ataupun `right_format`. -Catatan: Right propmt merupakan sebuah baris yang mengikuti lokasi baris inputan. Untuk membuat modul rata ke kanan di atas baris masukan di dalam multi-line prompt, lihat [`fill` module](/config/#fill). +Catatan: Right propmt merupakan sebuah baris yang mengikuti lokasi baris inputan. Untuk membuat modul rata ke kanan di atas baris masukan di dalam multi-line prompt, lihat [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/id-ID/config/README.md b/docs/id-ID/config/README.md index c0859def..798f68ba 100644 --- a/docs/id-ID/config/README.md +++ b/docs/id-ID/config/README.md @@ -158,7 +158,7 @@ Sebagai contoh: #### Penataan String -Sebagian besar modul starship memungkinkan kamu untuk mengkonfigurasi gaya tampilannya. Hal ini dilakukan dengan sebuah entri (biasanya `style`) yang konfigurasinya ditentukan oleh string. Berikut adalah beberapa contoh penataan pada string dan kegunaannya. Untuk detail sintaksis yang lebih lengkap, lihat [panduan konfigurasi lanjutan](/advanced-config/). +Sebagian besar modul starship memungkinkan kamu untuk mengkonfigurasi gaya tampilannya. Hal ini dilakukan dengan sebuah entri (biasanya `style`) yang konfigurasinya ditentukan oleh string. Berikut adalah beberapa contoh penataan pada string dan kegunaannya. Untuk detail sintaksis yang lebih lengkap, lihat [panduan konfigurasi lanjutan](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ Berikut adalah opsi konfigurasi dari list yang bersifat prompt-wide. | Opsi | Bawaan | Deskripsi | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `fromat` | [link](#default-prompt-format) | Mengkonfigurasi format pada prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Batas waktu starpship untuk memindai file (dalam milidetik). | | `command_timeout` | `500` | Batas waktu untuk perintah yang dijalankan starship (dalam milidetik). | | `add_newline` | `true` | Memasukkan baris kosong antara prompt shell. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/id-ID/faq/README.md b/docs/id-ID/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/id-ID/faq/README.md +++ b/docs/id-ID/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/id-ID/guide/README.md b/docs/id-ID/guide/README.md index 28776608..6a6c3359 100644 --- a/docs/id-ID/guide/README.md +++ b/docs/id-ID/guide/README.md @@ -40,11 +40,11 @@

- Situs Web + Situs Web · Pemasangan · - Konfigurasi + Konfigurasi

@@ -171,7 +171,7 @@ - **Mudah:** pemasangan singkat – mulai menggunakannya dalam hitungan menit.

-Jelajahi dokumentasi Starship  ▶ +Jelajahi dokumentasi Starship  ▶

diff --git a/docs/id-ID/installing/README.md b/docs/id-ID/installing/README.md index 9cd40e13..d738fe5a 100644 --- a/docs/id-ID/installing/README.md +++ b/docs/id-ID/installing/README.md @@ -5,7 +5,7 @@ Untuk memasang starship, ada dua hal yang perlu anda lakukan: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/id-ID/presets/bracketed-segments.md b/docs/id-ID/presets/bracketed-segments.md index 5b47ac52..59536d22 100644 --- a/docs/id-ID/presets/bracketed-segments.md +++ b/docs/id-ID/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/id-ID/presets/gruvbox-rainbow.md b/docs/id-ID/presets/gruvbox-rainbow.md index 9208142e..3de9ecf5 100644 --- a/docs/id-ID/presets/gruvbox-rainbow.md +++ b/docs/id-ID/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/id-ID/presets/jetpack.md b/docs/id-ID/presets/jetpack.md index 58dde840..569fe0a9 100644 --- a/docs/id-ID/presets/jetpack.md +++ b/docs/id-ID/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/id-ID/presets/nerd-font.md b/docs/id-ID/presets/nerd-font.md index 07e0b7a6..b8db7af6 100644 --- a/docs/id-ID/presets/nerd-font.md +++ b/docs/id-ID/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/id-ID/presets/no-empty-icons.md b/docs/id-ID/presets/no-empty-icons.md index 631ed172..53c8e211 100644 --- a/docs/id-ID/presets/no-empty-icons.md +++ b/docs/id-ID/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/id-ID/presets/no-nerd-font.md b/docs/id-ID/presets/no-nerd-font.md index a92389a7..d536df84 100644 --- a/docs/id-ID/presets/no-nerd-font.md +++ b/docs/id-ID/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/id-ID/presets/no-runtimes.md b/docs/id-ID/presets/no-runtimes.md index 9e625925..60eb7a0c 100644 --- a/docs/id-ID/presets/no-runtimes.md +++ b/docs/id-ID/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/id-ID/presets/pastel-powerline.md b/docs/id-ID/presets/pastel-powerline.md index 5557f344..bb83d2f7 100644 --- a/docs/id-ID/presets/pastel-powerline.md +++ b/docs/id-ID/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/id-ID/presets/plain-text.md b/docs/id-ID/presets/plain-text.md index 310736d4..018589ae 100644 --- a/docs/id-ID/presets/plain-text.md +++ b/docs/id-ID/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/id-ID/presets/pure-preset.md b/docs/id-ID/presets/pure-preset.md index d828b33b..c6bc781b 100644 --- a/docs/id-ID/presets/pure-preset.md +++ b/docs/id-ID/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/id-ID/presets/tokyo-night.md b/docs/id-ID/presets/tokyo-night.md index 996606d0..ae45ba6c 100644 --- a/docs/id-ID/presets/tokyo-night.md +++ b/docs/id-ID/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/installing/README.md b/docs/installing/README.md index 073be067..019ea924 100644 --- a/docs/installing/README.md +++ b/docs/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main diff --git a/docs/it-IT/README.md b/docs/it-IT/README.md index a851d502..2f88e4fe 100644 --- a/docs/it-IT/README.md +++ b/docs/it-IT/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Il prompt minimalista, super veloce e infinitamente personalizzabile per qualsiasi shell! -actionText: Inizia → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Il prompt minimalista, super veloce e infinitamente personalizzabile per qualsiasi shell! + actions: + - theme: brand + text: Inizia → + link: ./guide/ features: - - + - title: Prima la compatibilità details: Funziona sulle shell e sui sistemi operativi più comuni. Usalo ovunque! - - + - title: Scritto in Rust details: Sfrutta la velocità e sicurezza di Rust, per rendere il tuo prompt il più veloce e il più affidabile. - - + - title: Personalizzabile details: Ogni più piccolo dettaglio è personalizzabile a piacere, per rendere questo prompt minimalista o ricco di tutte le funzionalità che desideri. footer: Licenza ISC | Copyright © 2019-present Starship Collaboratori diff --git a/docs/it-IT/advanced-config/README.md b/docs/it-IT/advanced-config/README.md index b920d0d1..5e66055b 100644 --- a/docs/it-IT/advanced-config/README.md +++ b/docs/it-IT/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/it-IT/config/README.md b/docs/it-IT/config/README.md index e9ba9676..ed765891 100644 --- a/docs/it-IT/config/README.md +++ b/docs/it-IT/config/README.md @@ -158,7 +158,7 @@ Per esempio: #### Stringhe di stile -La maggior parte dei moduli in starship ti permettono di configurare i loro stili di visualizzazione. Questo viene fatto con una voce (solitamente chiamata `style`) che è una stringa che specifica la configurazione. Ecco alcuni esempi di stringhe di stile per quello che fanno. Per maggiori dettagli sulla sintassi completa, consulta la [guida di configurazione avanzata](/advanced-config/). +La maggior parte dei moduli in starship ti permettono di configurare i loro stili di visualizzazione. Questo viene fatto con una voce (solitamente chiamata `style`) che è una stringa che specifica la configurazione. Ecco alcuni esempi di stringhe di stile per quello che fanno. Per maggiori dettagli sulla sintassi completa, consulta la [guida di configurazione avanzata](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Opzione | Default | Descrizione | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configura il formato del prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout per starship per scansionare i file (in millisecondi). | | `command_timeout` | `500` | Timeout per i comandi eseguiti da starship (in millisecondi). | | `add_newline` | `true` | Inserisce una riga vuota tra i prompt della shell. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/it-IT/faq/README.md b/docs/it-IT/faq/README.md index 00dc751e..2ef9ecd6 100644 --- a/docs/it-IT/faq/README.md +++ b/docs/it-IT/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## Vedo simboli che non capisco o mi aspetto, cosa significano? diff --git a/docs/it-IT/guide/README.md b/docs/it-IT/guide/README.md index f718014a..f4c9a6c3 100644 --- a/docs/it-IT/guide/README.md +++ b/docs/it-IT/guide/README.md @@ -171,7 +171,7 @@ - **Facile:** veloce da installare - inizia ad usarlo in pochi minuti.

-Esplora la documentazione di Starship  ▶ +Esplora la documentazione di Starship  ▶

diff --git a/docs/it-IT/installing/README.md b/docs/it-IT/installing/README.md index 0c9a3b03..e37ccb26 100644 --- a/docs/it-IT/installing/README.md +++ b/docs/it-IT/installing/README.md @@ -5,7 +5,7 @@ Per installare starship, è necessario fare due cose: 1. Ottieni il binario **starship** sul tuo computer 1. Indica alla tua shell di usare il binario starship come prompt modificando i suoi script in init -Per la maggior parte degli utenti, le istruzioni nella [pagina principale](/guide/#🚀-installation) funzioneranno bene. Tuttavia, per alcune piattaforme più specializzate, sono necessarie istruzioni diverse. +Per la maggior parte degli utenti, le istruzioni nella [pagina principale](../guide/#🚀-installation) funzioneranno bene. Tuttavia, per alcune piattaforme più specializzate, sono necessarie istruzioni diverse. Ci sono così tante piattaforme là fuori che non sono tutte inserite nel README.md principale, così ecco alcune istruzioni di installazione per altre piattaforme della community. La tua non c'è? Per favore, aggiungilo qui se capisci che manca! diff --git a/docs/it-IT/presets/bracketed-segments.md b/docs/it-IT/presets/bracketed-segments.md index d18cacfe..95599a8a 100644 --- a/docs/it-IT/presets/bracketed-segments.md +++ b/docs/it-IT/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/it-IT/presets/gruvbox-rainbow.md b/docs/it-IT/presets/gruvbox-rainbow.md index 300d2ad4..fd186452 100644 --- a/docs/it-IT/presets/gruvbox-rainbow.md +++ b/docs/it-IT/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/it-IT/presets/jetpack.md b/docs/it-IT/presets/jetpack.md index 90212874..6c0ee038 100644 --- a/docs/it-IT/presets/jetpack.md +++ b/docs/it-IT/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/it-IT/presets/nerd-font.md b/docs/it-IT/presets/nerd-font.md index 2d7c0818..fd671f29 100644 --- a/docs/it-IT/presets/nerd-font.md +++ b/docs/it-IT/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/it-IT/presets/no-empty-icons.md b/docs/it-IT/presets/no-empty-icons.md index 89f29c9c..c09604d7 100644 --- a/docs/it-IT/presets/no-empty-icons.md +++ b/docs/it-IT/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/it-IT/presets/no-nerd-font.md b/docs/it-IT/presets/no-nerd-font.md index 83d1ffb5..6cb719dd 100644 --- a/docs/it-IT/presets/no-nerd-font.md +++ b/docs/it-IT/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/it-IT/presets/no-runtimes.md b/docs/it-IT/presets/no-runtimes.md index 603766c8..8747a717 100644 --- a/docs/it-IT/presets/no-runtimes.md +++ b/docs/it-IT/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/it-IT/presets/pastel-powerline.md b/docs/it-IT/presets/pastel-powerline.md index 2c3de87a..066bb7c9 100644 --- a/docs/it-IT/presets/pastel-powerline.md +++ b/docs/it-IT/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/it-IT/presets/plain-text.md b/docs/it-IT/presets/plain-text.md index c7107516..4caff370 100644 --- a/docs/it-IT/presets/plain-text.md +++ b/docs/it-IT/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/it-IT/presets/pure-preset.md b/docs/it-IT/presets/pure-preset.md index c6545076..327213e2 100644 --- a/docs/it-IT/presets/pure-preset.md +++ b/docs/it-IT/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/it-IT/presets/tokyo-night.md b/docs/it-IT/presets/tokyo-night.md index 899f2e09..30de82d3 100644 --- a/docs/it-IT/presets/tokyo-night.md +++ b/docs/it-IT/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/ja-JP/README.md b/docs/ja-JP/README.md index 2d5e81c2..91590f42 100644 --- a/docs/ja-JP/README.md +++ b/docs/ja-JP/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトです! -actionText: Get Started → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトです! + actions: + - theme: brand + text: Get Started → + link: ./guide/ features: - - + - title: 互換性優先 details: 一般的なほとんどのOSの一般的なほとんどのシェル上で動作します。 あらゆるところで使用してください! - - + - title: Rust製 details: Rustの最高レベルの速度と安全性を用いることで、可能な限り高速かつ信頼性を高くしています。 - - + - title: カスタマイズ可能 details: それぞれの細かい点は好みにカスタマイズが出来るため、ミニマルにも多機能にも好きなようにプロンプトを設定することができます。 footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/ja-JP/advanced-config/README.md b/docs/ja-JP/advanced-config/README.md index f1d7c59d..8e47152b 100644 --- a/docs/ja-JP/advanced-config/README.md +++ b/docs/ja-JP/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) シェルによっては、入力と同じ行にレンダリングされる右プロンプトをサポートしています。 Starship では `right_format` オプションを使って右プロンプトの内容を設定できます。 `format`で使用できるモジュールはすべて`right_format`でも使用できます。 変数`$all`には、`format`や`right_format`で明示的に使用されていないモジュールのみが格納されます。 -注意: 右プロンプトは入力の場所に続く単一の行です。 To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +注意: 右プロンプトは入力の場所に続く単一の行です。 To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/ja-JP/config/README.md b/docs/ja-JP/config/README.md index 708400f8..1b8c67a1 100644 --- a/docs/ja-JP/config/README.md +++ b/docs/ja-JP/config/README.md @@ -158,7 +158,7 @@ line2 #### スタイルの設定 -Starshipのほとんどのモジュールでは、表示スタイルを設定できます。 これは、設定を指定する文字列であるエントリ(`style`)で行われます。 スタイル文字列の例とその機能を次に示します。 完全な構文の詳細については、詳細は [高度な設定](/advanced-config/)を参照してください 。 +Starshipのほとんどのモジュールでは、表示スタイルを設定できます。 これは、設定を指定する文字列であるエントリ(`style`)で行われます。 スタイル文字列の例とその機能を次に示します。 完全な構文の詳細については、詳細は [高度な設定](../advanced-config/)を参照してください 。 - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | オプション | デフォルト | 説明 | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | プロンプトの形式を設定します。 | -| `right_format` | `''` | [右プロンプトの有効化](/advanced-config/#enable-right-prompt)を参照してください。 | +| `right_format` | `''` | [右プロンプトの有効化](../advanced-config/#enable-right-prompt)を参照してください。 | | `scan_timeout` | `30` | ファイルをスキャンする際のタイムアウト時間 (milliseconds) です。 | | `command_timeout` | `500` | Starshipによって実行されたコマンドのタイムアウト時間 (milliseconds) です。 | | `add_newline` | `true` | シェルプロンプトの間に空行を挿入します。 | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/ja-JP/faq/README.md b/docs/ja-JP/faq/README.md index 7b3b84b1..9bcce73e 100644 --- a/docs/ja-JP/faq/README.md +++ b/docs/ja-JP/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## どうして`Executing command "..." timed out.`という警告が出てくるのでしょうか? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## よくわからない記号を見つけました。これはどういった意味ですか? diff --git a/docs/ja-JP/guide/README.md b/docs/ja-JP/guide/README.md index 1d0167b3..815925b8 100644 --- a/docs/ja-JP/guide/README.md +++ b/docs/ja-JP/guide/README.md @@ -40,11 +40,11 @@

- ウェブサイト + ウェブサイト · インストール · - 設定 + 設定

@@ -171,7 +171,7 @@ - **簡単:** 迅速なインストールが可能であり、数分で使用開始可能です。

-Starshipのドキュメントを見る  ▶ +Starshipのドキュメントを見る  ▶

diff --git a/docs/ja-JP/installing/README.md b/docs/ja-JP/installing/README.md index d48c8309..1d00825b 100644 --- a/docs/ja-JP/installing/README.md +++ b/docs/ja-JP/installing/README.md @@ -5,7 +5,7 @@ Starship をインストールするには、以下の2つのことを行う必 1. ** starship ** のバイナリをコンピューター上に取得する 1. Init スクリプトを修正することで、Starship バイナリをプロンプトとして使用するようシェルに指示する -ほとんどのユーザーの場合、[メインページ](/guide/#🚀-installation)の説明でうまく動作します。 しかし、より特殊なプラットフォームでは、別の操作が必要になることがあります。 +ほとんどのユーザーの場合、[メインページ](../guide/#🚀-installation)の説明でうまく動作します。 しかし、より特殊なプラットフォームでは、別の操作が必要になることがあります。 プラットフォームは無数に存在するため、メインの README.md ファイルには書ききれません。そこで、このページでは、コミュニティにより提供された他のプラットフォーム向けのインストール方法について紹介します。 あなたが使用しているプラットフォームが見当たりませんか? その場合は是非、見つけた方法をここに追加してください。 diff --git a/docs/ja-JP/presets/bracketed-segments.md b/docs/ja-JP/presets/bracketed-segments.md index 2368a028..3e04952b 100644 --- a/docs/ja-JP/presets/bracketed-segments.md +++ b/docs/ja-JP/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#bracketed-segments) +[プリセット一覧に戻る](./#bracketed-segments) # Bracketed Segmentsプリセット @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/ja-JP/presets/gruvbox-rainbow.md b/docs/ja-JP/presets/gruvbox-rainbow.md index badafdbd..f4452044 100644 --- a/docs/ja-JP/presets/gruvbox-rainbow.md +++ b/docs/ja-JP/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#gruvbox-rainbow) +[プリセット一覧に戻る](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ja-JP/presets/jetpack.md b/docs/ja-JP/presets/jetpack.md index 59a44ce3..01721091 100644 --- a/docs/ja-JP/presets/jetpack.md +++ b/docs/ja-JP/presets/jetpack.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#jetpack) +[プリセット一覧に戻る](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/ja-JP/presets/nerd-font.md b/docs/ja-JP/presets/nerd-font.md index a82b6753..43fdeec0 100644 --- a/docs/ja-JP/presets/nerd-font.md +++ b/docs/ja-JP/presets/nerd-font.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#nerd-font-symbols) +[プリセット一覧に戻る](./#nerd-font-symbols) # Nerd Font Symbolsプリセット @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ja-JP/presets/no-empty-icons.md b/docs/ja-JP/presets/no-empty-icons.md index 7bd24465..c8678429 100644 --- a/docs/ja-JP/presets/no-empty-icons.md +++ b/docs/ja-JP/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#no-empty-icons) +[プリセット一覧に戻る](./#no-empty-icons) # No Empty Icons プリセット @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/ja-JP/presets/no-nerd-font.md b/docs/ja-JP/presets/no-nerd-font.md index 66a512c2..a8bf13e6 100644 --- a/docs/ja-JP/presets/no-nerd-font.md +++ b/docs/ja-JP/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#no-nerd-fonts) +[プリセット一覧に戻る](./#no-nerd-fonts) # No Nerd Fonts プリセット @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/ja-JP/presets/no-runtimes.md b/docs/ja-JP/presets/no-runtimes.md index d3cbb2fd..40ff1d8f 100644 --- a/docs/ja-JP/presets/no-runtimes.md +++ b/docs/ja-JP/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#no-runtime-versions) +[プリセット一覧に戻る](./#no-runtime-versions) # No Runtime Versionsプリセット @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ja-JP/presets/pastel-powerline.md b/docs/ja-JP/presets/pastel-powerline.md index 24117172..5ecccc76 100644 --- a/docs/ja-JP/presets/pastel-powerline.md +++ b/docs/ja-JP/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#pastel-powerline) +[プリセット一覧に戻る](./#pastel-powerline) # Pastel Powerlineプリセット @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/ja-JP/presets/plain-text.md b/docs/ja-JP/presets/plain-text.md index 220f1241..dee59e86 100644 --- a/docs/ja-JP/presets/plain-text.md +++ b/docs/ja-JP/presets/plain-text.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#plain-text-symbols) +[プリセット一覧に戻る](./#plain-text-symbols) ## Plain Text Symbolsプリセット @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ja-JP/presets/pure-preset.md b/docs/ja-JP/presets/pure-preset.md index e0a64349..4294d2c7 100644 --- a/docs/ja-JP/presets/pure-preset.md +++ b/docs/ja-JP/presets/pure-preset.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#pure) +[プリセット一覧に戻る](./#pure) # Pureプリセット @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/ja-JP/presets/tokyo-night.md b/docs/ja-JP/presets/tokyo-night.md index 887aef78..f6235e4f 100644 --- a/docs/ja-JP/presets/tokyo-night.md +++ b/docs/ja-JP/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[プリセット一覧に戻る](./README.md#pastel-powerline) +[プリセット一覧に戻る](./#pastel-powerline) # Tokyo Night プリセット @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [クリックしてTOMLをダウンロード](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/ko-KR/README.md b/docs/ko-KR/README.md index 1b95959b..41736c73 100644 --- a/docs/ko-KR/README.md +++ b/docs/ko-KR/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! -actionText: 시작하기 → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! + actions: + - theme: brand + text: 시작하기 → + link: ./guide/ features: - - + - title: 호환성 우선 details: 거의 모든 운영 체제의 거의 모든 셸에서 동작합니다. 모든 곳에서 사용해 보세요! - - + - title: Rust 기반 details: Rust의 최고 수준의 속도와 안정성으로 프롬프트를 가능한 한 빠르고 안정적으로 만들어 보세요. - - + - title: 커스텀 가능 details: 모든 사소한 디테일들을 마음대로 커스텀할 수 있어, 프롬프트를 원하는 만큼 간단하게 만들거나 기능이 풍부하게 만들 수 있습니다. footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/ko-KR/advanced-config/README.md b/docs/ko-KR/advanced-config/README.md index c95445b8..49006e12 100644 --- a/docs/ko-KR/advanced-config/README.md +++ b/docs/ko-KR/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) 일부 셸은 입력과 같은 줄에 렌더링되는 오른쪽 프롬프트를 지원합니다. Starship에서는 `right_format` 옵션을 사용하여 오른쪽 프롬프트의 내용을 설정할 수 있습니다. `format`에서 사용할 수 있는 모든 모듈은 `right_format`에서도 지원됩니다. `$all` 변수는 `format` 또는 `right_format`에서 명시적으로 사용하지 않는 모듈만 포함합니다. -알림: 오른쪽 프롬프트는 입력 위치에 따라 한 줄로 표시됩니다. 여러 줄 프롬프트에서 입력 선 위의 모듈을 오른쪽 정렬하려면, [`fill` 모듈](/config/#fill)을 참고하세요. +알림: 오른쪽 프롬프트는 입력 위치에 따라 한 줄로 표시됩니다. 여러 줄 프롬프트에서 입력 선 위의 모듈을 오른쪽 정렬하려면, [`fill` 모듈](../config/#fill)을 참고하세요. `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/ko-KR/config/README.md b/docs/ko-KR/config/README.md index a79069c1..d32ea029 100644 --- a/docs/ko-KR/config/README.md +++ b/docs/ko-KR/config/README.md @@ -158,7 +158,7 @@ In the second part, which is enclosed in a `()`, is a [style string](#style-stri #### 스타일 문자열 -Starship의 대부분의 모듈에 표시 스타일을 설정할 수 있습니다. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Starship의 대부분의 모듈에 표시 스타일을 설정할 수 있습니다. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/ko-KR/faq/README.md b/docs/ko-KR/faq/README.md index 0e7a3de8..462d0c50 100644 --- a/docs/ko-KR/faq/README.md +++ b/docs/ko-KR/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## 왜 `Executing command "..." timed out.` 경고가 뜨나요? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## 이해할 수 없거나 예상치 못한 기호가 보이는데 무슨 뜻인가요? diff --git a/docs/ko-KR/guide/README.md b/docs/ko-KR/guide/README.md index 374f9117..84c86983 100644 --- a/docs/ko-KR/guide/README.md +++ b/docs/ko-KR/guide/README.md @@ -40,11 +40,11 @@

- 웹사이트 + 웹사이트 · 설치 · - 설정 + 설정

@@ -171,7 +171,7 @@ - **쉬움:** 빠른 설치 - 몇 분만 투자하면 바로 사용할 수 있습니다.

-Starship 문서 보기  ▶ +Starship 문서 보기  ▶

diff --git a/docs/ko-KR/installing/README.md b/docs/ko-KR/installing/README.md index e25fffbd..5b8fca96 100644 --- a/docs/ko-KR/installing/README.md +++ b/docs/ko-KR/installing/README.md @@ -5,7 +5,7 @@ Starship을 설치하려면 다음 두 가지를 수행해주세요 1. **Starship** 바이너리를 당신의 컴퓨터에 받으세요 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/ko-KR/presets/bracketed-segments.md b/docs/ko-KR/presets/bracketed-segments.md index 8d6430df..51b10c89 100644 --- a/docs/ko-KR/presets/bracketed-segments.md +++ b/docs/ko-KR/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#bracketed-segments) +[프리셋으로 돌아가기](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/ko-KR/presets/gruvbox-rainbow.md b/docs/ko-KR/presets/gruvbox-rainbow.md index e7b246a1..e1b00f80 100644 --- a/docs/ko-KR/presets/gruvbox-rainbow.md +++ b/docs/ko-KR/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#gruvbox-rainbow) +[프리셋으로 돌아가기](./#gruvbox-rainbow) # Gruvbox Rainbow 프리셋 @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ko-KR/presets/jetpack.md b/docs/ko-KR/presets/jetpack.md index ada3e095..89da2fdb 100644 --- a/docs/ko-KR/presets/jetpack.md +++ b/docs/ko-KR/presets/jetpack.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#jetpack) +[프리셋으로 돌아가기](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/ko-KR/presets/nerd-font.md b/docs/ko-KR/presets/nerd-font.md index f4c6c6ea..41823093 100644 --- a/docs/ko-KR/presets/nerd-font.md +++ b/docs/ko-KR/presets/nerd-font.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#nerd-font-symbols) +[프리셋으로 돌아가기](./#nerd-font-symbols) # Nerd Font 기호 프리셋 @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ko-KR/presets/no-empty-icons.md b/docs/ko-KR/presets/no-empty-icons.md index c3f42973..6ef76185 100644 --- a/docs/ko-KR/presets/no-empty-icons.md +++ b/docs/ko-KR/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#no-empty-icons) +[프리셋으로 돌아가기](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/ko-KR/presets/no-nerd-font.md b/docs/ko-KR/presets/no-nerd-font.md index 6f73477e..15af82c4 100644 --- a/docs/ko-KR/presets/no-nerd-font.md +++ b/docs/ko-KR/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#no-nerd-fonts) +[프리셋으로 돌아가기](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/ko-KR/presets/no-runtimes.md b/docs/ko-KR/presets/no-runtimes.md index 767a45f0..e692b986 100644 --- a/docs/ko-KR/presets/no-runtimes.md +++ b/docs/ko-KR/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#no-runtime-versions) +[프리셋으로 돌아가기](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ko-KR/presets/pastel-powerline.md b/docs/ko-KR/presets/pastel-powerline.md index 477afea2..4034c30d 100644 --- a/docs/ko-KR/presets/pastel-powerline.md +++ b/docs/ko-KR/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#pastel-powerline) +[프리셋으로 돌아가기](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/ko-KR/presets/plain-text.md b/docs/ko-KR/presets/plain-text.md index e2d1087f..08cde790 100644 --- a/docs/ko-KR/presets/plain-text.md +++ b/docs/ko-KR/presets/plain-text.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#plain-text-symbols) +[프리셋으로 돌아가기](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ko-KR/presets/pure-preset.md b/docs/ko-KR/presets/pure-preset.md index fec4b572..123b67ce 100644 --- a/docs/ko-KR/presets/pure-preset.md +++ b/docs/ko-KR/presets/pure-preset.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#pure) +[프리셋으로 돌아가기](./#pure) # Pure 프리셋 @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/ko-KR/presets/tokyo-night.md b/docs/ko-KR/presets/tokyo-night.md index fb3a3a3a..963636ed 100644 --- a/docs/ko-KR/presets/tokyo-night.md +++ b/docs/ko-KR/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[프리셋으로 돌아가기](./README.md#pastel-powerline) +[프리셋으로 돌아가기](./#pastel-powerline) # Tokyo Night 프리셋 @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [클릭하여 TOML 다운로드](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/nl-NL/README.md b/docs/nl-NL/README.md index 68c324a1..0d92c555 100644 --- a/docs/nl-NL/README.md +++ b/docs/nl-NL/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: De minimalistische, razend snelle en oneindig aanpasbare prompt voor elke shell! -actionText: Get Started → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: De minimalistische, razend snelle en oneindig aanpasbare prompt voor elke shell! + actions: + - theme: brand + text: Get Started → + link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/nl-NL/advanced-config/README.md b/docs/nl-NL/advanced-config/README.md index 2e6c8aa0..385ba21c 100644 --- a/docs/nl-NL/advanced-config/README.md +++ b/docs/nl-NL/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/nl-NL/config/README.md b/docs/nl-NL/config/README.md index 1619411e..328ab8c4 100644 --- a/docs/nl-NL/config/README.md +++ b/docs/nl-NL/config/README.md @@ -158,7 +158,7 @@ For example: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/nl-NL/faq/README.md b/docs/nl-NL/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/nl-NL/faq/README.md +++ b/docs/nl-NL/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/nl-NL/guide/README.md b/docs/nl-NL/guide/README.md index c4a18ddb..31f01227 100644 --- a/docs/nl-NL/guide/README.md +++ b/docs/nl-NL/guide/README.md @@ -40,11 +40,11 @@

- Website + Website · Installatie · - Configuratie + Configuratie

@@ -171,7 +171,7 @@ - **Makkelijk:** snel te installeren – gebruik het binnen enkele minuten.

-Verken de Starship-documentatie  ▶ +Verken de Starship-documentatie  ▶

diff --git a/docs/nl-NL/installing/README.md b/docs/nl-NL/installing/README.md index a674a441..d2bc69f5 100644 --- a/docs/nl-NL/installing/README.md +++ b/docs/nl-NL/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/nl-NL/presets/bracketed-segments.md b/docs/nl-NL/presets/bracketed-segments.md index 982afb20..579d789e 100644 --- a/docs/nl-NL/presets/bracketed-segments.md +++ b/docs/nl-NL/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/nl-NL/presets/gruvbox-rainbow.md b/docs/nl-NL/presets/gruvbox-rainbow.md index 8f342a04..674ccecb 100644 --- a/docs/nl-NL/presets/gruvbox-rainbow.md +++ b/docs/nl-NL/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/nl-NL/presets/jetpack.md b/docs/nl-NL/presets/jetpack.md index 0f52a9a9..c247b97f 100644 --- a/docs/nl-NL/presets/jetpack.md +++ b/docs/nl-NL/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/nl-NL/presets/nerd-font.md b/docs/nl-NL/presets/nerd-font.md index 51deed1f..2da23ca4 100644 --- a/docs/nl-NL/presets/nerd-font.md +++ b/docs/nl-NL/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/nl-NL/presets/no-empty-icons.md b/docs/nl-NL/presets/no-empty-icons.md index aa4a211f..2d262cdd 100644 --- a/docs/nl-NL/presets/no-empty-icons.md +++ b/docs/nl-NL/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/nl-NL/presets/no-nerd-font.md b/docs/nl-NL/presets/no-nerd-font.md index a70e85e7..c3fb3636 100644 --- a/docs/nl-NL/presets/no-nerd-font.md +++ b/docs/nl-NL/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/nl-NL/presets/no-runtimes.md b/docs/nl-NL/presets/no-runtimes.md index c0805d11..218d1ae1 100644 --- a/docs/nl-NL/presets/no-runtimes.md +++ b/docs/nl-NL/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/nl-NL/presets/pastel-powerline.md b/docs/nl-NL/presets/pastel-powerline.md index c62220eb..07c42e7c 100644 --- a/docs/nl-NL/presets/pastel-powerline.md +++ b/docs/nl-NL/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/nl-NL/presets/plain-text.md b/docs/nl-NL/presets/plain-text.md index 1e17b4bc..2a075171 100644 --- a/docs/nl-NL/presets/plain-text.md +++ b/docs/nl-NL/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/nl-NL/presets/pure-preset.md b/docs/nl-NL/presets/pure-preset.md index b75a0056..68b7b49d 100644 --- a/docs/nl-NL/presets/pure-preset.md +++ b/docs/nl-NL/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/nl-NL/presets/tokyo-night.md b/docs/nl-NL/presets/tokyo-night.md index 362a261c..f7c14aff 100644 --- a/docs/nl-NL/presets/tokyo-night.md +++ b/docs/nl-NL/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/no-NO/README.md b/docs/no-NO/README.md index cf21f679..0d94d3ef 100644 --- a/docs/no-NO/README.md +++ b/docs/no-NO/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Minimal, blendende rask og uendelig tilpasningsdyktig ledetekst for alle skall! -actionText: Get Started → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Minimal, blendende rask og uendelig tilpasningsdyktig ledetekst for alle skall! + actions: + - theme: brand + text: Get Started → + link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/no-NO/advanced-config/README.md b/docs/no-NO/advanced-config/README.md index 2e6c8aa0..385ba21c 100644 --- a/docs/no-NO/advanced-config/README.md +++ b/docs/no-NO/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/no-NO/config/README.md b/docs/no-NO/config/README.md index 1619411e..328ab8c4 100644 --- a/docs/no-NO/config/README.md +++ b/docs/no-NO/config/README.md @@ -158,7 +158,7 @@ For example: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/no-NO/faq/README.md b/docs/no-NO/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/no-NO/faq/README.md +++ b/docs/no-NO/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/no-NO/guide/README.md b/docs/no-NO/guide/README.md index 8257069b..918c93f8 100644 --- a/docs/no-NO/guide/README.md +++ b/docs/no-NO/guide/README.md @@ -40,11 +40,11 @@

- Nettside + Nettside · Installasjon · - Konfigurasjon + Konfigurasjon

@@ -171,7 +171,7 @@ - **Lett:** raskt å installere - start å bruke det på minutter.

-Utforsk Starship dokumentasjon  ▶ +Utforsk Starship dokumentasjon  ▶

diff --git a/docs/no-NO/installing/README.md b/docs/no-NO/installing/README.md index fe6a4003..b5eaa6c4 100644 --- a/docs/no-NO/installing/README.md +++ b/docs/no-NO/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/no-NO/presets/bracketed-segments.md b/docs/no-NO/presets/bracketed-segments.md index 982afb20..579d789e 100644 --- a/docs/no-NO/presets/bracketed-segments.md +++ b/docs/no-NO/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/no-NO/presets/gruvbox-rainbow.md b/docs/no-NO/presets/gruvbox-rainbow.md index cfe75913..7fd686a6 100644 --- a/docs/no-NO/presets/gruvbox-rainbow.md +++ b/docs/no-NO/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/no-NO/presets/jetpack.md b/docs/no-NO/presets/jetpack.md index 0f52a9a9..c247b97f 100644 --- a/docs/no-NO/presets/jetpack.md +++ b/docs/no-NO/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/no-NO/presets/nerd-font.md b/docs/no-NO/presets/nerd-font.md index 5b4d54eb..fadcb516 100644 --- a/docs/no-NO/presets/nerd-font.md +++ b/docs/no-NO/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/no-NO/presets/no-empty-icons.md b/docs/no-NO/presets/no-empty-icons.md index aa4a211f..2d262cdd 100644 --- a/docs/no-NO/presets/no-empty-icons.md +++ b/docs/no-NO/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/no-NO/presets/no-nerd-font.md b/docs/no-NO/presets/no-nerd-font.md index a70e85e7..c3fb3636 100644 --- a/docs/no-NO/presets/no-nerd-font.md +++ b/docs/no-NO/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/no-NO/presets/no-runtimes.md b/docs/no-NO/presets/no-runtimes.md index c0805d11..218d1ae1 100644 --- a/docs/no-NO/presets/no-runtimes.md +++ b/docs/no-NO/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/no-NO/presets/pastel-powerline.md b/docs/no-NO/presets/pastel-powerline.md index 03a5c04e..dfb1a515 100644 --- a/docs/no-NO/presets/pastel-powerline.md +++ b/docs/no-NO/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/no-NO/presets/plain-text.md b/docs/no-NO/presets/plain-text.md index 1e17b4bc..2a075171 100644 --- a/docs/no-NO/presets/plain-text.md +++ b/docs/no-NO/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/no-NO/presets/pure-preset.md b/docs/no-NO/presets/pure-preset.md index b75a0056..68b7b49d 100644 --- a/docs/no-NO/presets/pure-preset.md +++ b/docs/no-NO/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/no-NO/presets/tokyo-night.md b/docs/no-NO/presets/tokyo-night.md index abd9d036..0522ecc2 100644 --- a/docs/no-NO/presets/tokyo-night.md +++ b/docs/no-NO/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/package-lock.json b/docs/package-lock.json index 050a6cfa..9ac3d5f7 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,437 +1,199 @@ { "name": "docs", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { "devDependencies": { - "vuepress": "^1.9.10", - "vuepress-plugin-code-copy": "^1.0.6", - "vuepress-plugin-sitemap": "^2.3.1", - "vuepress-theme-default-prefers-color-scheme": "^2.0.0" + "vitepress": "^1.0.0-rc.44" } }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" } }, - "node_modules/@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/autocomplete-shared": "1.9.3" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "search-insights": ">= 1 < 3" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", - "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==", + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/autocomplete-shared": "1.9.3" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", + "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" + "@algolia/cache-common": "4.22.1" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "node_modules/@algolia/cache-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", + "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==", + "dev": true + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", + "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/cache-common": "4.22.1" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "node_modules/@algolia/client-account": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", + "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/transporter": "4.22.1" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "node_modules/@algolia/client-analytics": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", + "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "node_modules/@algolia/client-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", + "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "node_modules/@algolia/client-personalization": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", + "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "node_modules/@algolia/client-search": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", + "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "node_modules/@algolia/logger-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", + "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==", + "dev": true + }, + "node_modules/@algolia/logger-console": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", + "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/logger-common": "4.22.1" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", + "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/requester-common": "4.22.1" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "node_modules/@algolia/requester-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", + "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==", + "dev": true + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", + "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/requester-common": "4.22.1" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "node_modules/@algolia/transporter": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", + "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/cache-common": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/requester-common": "4.22.1" } }, "node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -440,4765 +202,1035 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz", - "integrity": "sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz", - "integrity": "sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/highlight.js": { - "version": "9.12.4", - "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.4.tgz", - "integrity": "sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww==", + "node_modules/@docsearch/css": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", + "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==", "dev": true }, - "node_modules/@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "node_modules/@docsearch/js": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz", + "integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==", "dev": true, "dependencies": { - "@types/node": "*" + "@docsearch/react": "3.5.2", + "preact": "^10.0.0" } }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", - "dev": true - }, - "node_modules/@types/markdown-it": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-10.0.3.tgz", - "integrity": "sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw==", + "node_modules/@docsearch/react": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", + "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", "dev": true, "dependencies": { - "@types/highlight.js": "^9.7.0", - "@types/linkify-it": "*", - "@types/mdurl": "*", - "highlight.js": "^9.7.0" - } - }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz", - "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==", - "dev": true - }, - "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "node_modules/@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", - "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", - "dev": true - }, - "node_modules/@types/uglify-js": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.1.tgz", - "integrity": "sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/@types/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/webpack": { - "version": "4.41.33", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.33.tgz", - "integrity": "sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@types/webpack-dev-server": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz", - "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==", - "dev": true, - "dependencies": { - "@types/connect-history-api-fallback": "*", - "@types/express": "*", - "@types/serve-static": "*", - "@types/webpack": "^4", - "http-proxy-middleware": "^1.0.0" - } - }, - "node_modules/@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", - "dev": true - }, - "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", - "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", - "dev": true - }, - "node_modules/@vue/babel-plugin-jsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", - "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - } - }, - "node_modules/@vue/babel-plugin-transform-vue-jsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", - "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.5.2", + "algoliasearch": "^4.19.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-plugin-transform-vue-jsx/node_modules/html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/babel-preset-app": { - "version": "4.5.15", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz", - "integrity": "sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.0", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.11.0", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.0", - "@vue/babel-plugin-jsx": "^1.0.3", - "@vue/babel-preset-jsx": "^1.2.4", - "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", - "core-js-compat": "^3.6.5", - "semver": "^6.1.0" - }, - "peerDependencies": { - "@babel/core": "*", - "core-js": "^3", - "vue": "^2 || ^3.0.0-0" + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" }, "peerDependenciesMeta": { - "core-js": { + "@types/react": { "optional": true }, - "vue": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { "optional": true } } }, - "node_modules/@vue/babel-preset-jsx": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", - "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.1.5.tgz", + "integrity": "sha512-cKc5vGQ4p/4sjx48BHIO7CvLaN32vqpz5Wh7v2n+U1EezGdfX4Wms7khBctKz3iCg9yYq4sfGUc2t+JWj6EUsw==", + "dev": true + }, + "node_modules/@shikijs/transformers": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.1.5.tgz", + "integrity": "sha512-ot6KWPmLuSN9nA9FAhttOXZIjKIy7cnwpNtI9aWmYN72RUaDz8eojRfMGUXsXXUxW/buvcvdZQAQldk7/pFpdw==", "dev": true, "dependencies": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", - "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", - "@vue/babel-sugar-functional-vue": "^1.2.2", - "@vue/babel-sugar-inject-h": "^1.2.2", - "@vue/babel-sugar-v-model": "^1.2.3", - "@vue/babel-sugar-v-on": "^1.2.3" + "shiki": "1.1.5" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/linkify-it": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "13.0.7", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.7.tgz", + "integrity": "sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", + "dev": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", + "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "vite": "^5.0.0", + "vue": "^3.2.25" } }, - "node_modules/@vue/babel-sugar-composition-api-inject-h": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", - "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", + "node_modules/@vue/compiler-core": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.19.tgz", + "integrity": "sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==", "dev": true, "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" + "@babel/parser": "^7.23.9", + "@vue/shared": "3.4.19", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz", + "integrity": "sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz", + "integrity": "sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.9", + "@vue/compiler-core": "3.4.19", + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.6", + "postcss": "^8.4.33", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz", + "integrity": "sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.0.15.tgz", + "integrity": "sha512-kgEYWosDyWpS1vFSuJNNWUnHkP+VkL3Y+9mw+rf7ex41SwbYL/WdC3KXqAtjiSrEs7r/FrHmUTh0BkINJPFkbA==", + "dev": true, + "dependencies": { + "@vue/devtools-kit": "^7.0.15" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.15.tgz", + "integrity": "sha512-dT7OeCe1LUCIhHIb/yRR6Hn+XHh73r1o78onqCrxEKHdoZwBItiIeVnmJZPEUDFstIxfs+tJL231mySk3laTow==", + "dev": true, + "dependencies": { + "@vue/devtools-shared": "^7.0.15", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "vue": "^3.0.0" } }, - "node_modules/@vue/babel-sugar-composition-api-render-instance": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", - "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", + "node_modules/@vue/devtools-shared": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.15.tgz", + "integrity": "sha512-fpfvMVvS7aDgO7x2JPFiTQ1MHcCc63/bE7yTgs278gMBybuO9b3hdiZ/k0Pw1rN+RefaU9yQiFA+5CCFc1D+6w==", "dev": true, "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" + "rfdc": "^1.3.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.19.tgz", + "integrity": "sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==", + "dev": true, + "dependencies": { + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.19.tgz", + "integrity": "sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==", + "dev": true, + "dependencies": { + "@vue/reactivity": "3.4.19", + "@vue/shared": "3.4.19" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.19.tgz", + "integrity": "sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==", + "dev": true, + "dependencies": { + "@vue/runtime-core": "3.4.19", + "@vue/shared": "3.4.19", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.19.tgz", + "integrity": "sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==", + "dev": true, + "dependencies": { + "@vue/compiler-ssr": "3.4.19", + "@vue/shared": "3.4.19" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "vue": "3.4.19" } }, - "node_modules/@vue/babel-sugar-functional-vue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", - "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-inject-h": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", - "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-v-model": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", - "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-v-model/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@vue/babel-sugar-v-model/node_modules/html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vue/babel-sugar-v-on": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", - "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@vue/babel-sugar-v-on/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@vue/component-compiler-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", - "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", - "dev": true, - "dependencies": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.36", - "postcss-selector-parser": "^6.0.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - }, - "optionalDependencies": { - "prettier": "^1.18.2 || ^2.0.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@vue/component-compiler-utils/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "node_modules/@vue/shared": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.19.tgz", + "integrity": "sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==", "dev": true }, - "node_modules/@vuepress/core": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-1.9.10.tgz", - "integrity": "sha512-H9ddo5fSinPb8QYl8OJFbZikMpOW84bm/U3Drzz8CnCXNtpda7CU2wX/XzOhe98G8jp45xhtZRkxOrqzBBAShA==", + "node_modules/@vueuse/core": { + "version": "10.7.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz", + "integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==", "dev": true, "dependencies": { - "@babel/core": "^7.8.4", - "@vue/babel-preset-app": "^4.1.2", - "@vuepress/markdown": "1.9.10", - "@vuepress/markdown-loader": "1.9.10", - "@vuepress/plugin-last-updated": "1.9.10", - "@vuepress/plugin-register-components": "1.9.10", - "@vuepress/shared-utils": "1.9.10", - "@vuepress/types": "1.9.10", - "autoprefixer": "^9.5.1", - "babel-loader": "^8.0.4", - "bundle-require": "2.1.8", - "cache-loader": "^3.0.0", - "chokidar": "^2.0.3", - "connect-history-api-fallback": "^1.5.0", - "copy-webpack-plugin": "^5.0.2", - "core-js": "^3.6.4", - "cross-spawn": "^6.0.5", - "css-loader": "^2.1.1", - "esbuild": "0.14.7", - "file-loader": "^3.0.1", - "js-yaml": "^3.13.1", - "lru-cache": "^5.1.1", - "mini-css-extract-plugin": "0.6.0", - "optimize-css-assets-webpack-plugin": "^5.0.1", - "portfinder": "^1.0.13", - "postcss-loader": "^3.0.0", - "postcss-safe-parser": "^4.0.1", - "toml": "^3.0.0", - "url-loader": "^1.0.1", - "vue": "^2.6.10", - "vue-loader": "^15.7.1", - "vue-router": "^3.4.5", - "vue-server-renderer": "^2.6.10", - "vue-template-compiler": "^2.6.10", - "vuepress-html-webpack-plugin": "^3.2.0", - "vuepress-plugin-container": "^2.0.2", - "webpack": "^4.8.1", - "webpack-chain": "^6.0.0", - "webpack-dev-server": "^3.5.1", - "webpack-merge": "^4.1.2", - "webpackbar": "3.2.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/@vuepress/markdown": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.9.10.tgz", - "integrity": "sha512-sXTLjeZzH8SQuAL5AEH0hhsMljjNJbzWbBvzaj5yQCCdf+3sp/dJ0kwnBSnQjFPPnzPg5t3tLKGUYHyW0KiKzA==", - "dev": true, - "dependencies": { - "@vuepress/shared-utils": "1.9.10", - "markdown-it": "^8.4.1", - "markdown-it-anchor": "^5.0.2", - "markdown-it-chain": "^1.3.0", - "markdown-it-emoji": "^1.4.0", - "markdown-it-table-of-contents": "^0.4.0", - "prismjs": "^1.13.0" - } - }, - "node_modules/@vuepress/markdown-loader": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.9.10.tgz", - "integrity": "sha512-94BlwKc+lOaN/A5DkyA9KWHvMlMC1sWunAXE3Tv0WYzgYLDs9QqCsx7L5kLkpcOOVVm/8kBJumnXvVBwhqJddw==", - "dev": true, - "dependencies": { - "@vuepress/markdown": "1.9.10", - "loader-utils": "^1.1.0", - "lru-cache": "^5.1.1" - } - }, - "node_modules/@vuepress/plugin-active-header-links": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.10.tgz", - "integrity": "sha512-2dRr3DE2UBFXhyMtLR3sGTdRyDM8YStuY6AOoQmoSgwy1IHt7PO7ypOuf1akF+1Nv8Q2aISU06q6TExZouu3Mw==", - "dev": true, - "dependencies": { - "@vuepress/types": "1.9.10", - "lodash.debounce": "^4.0.8" - } - }, - "node_modules/@vuepress/plugin-last-updated": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.10.tgz", - "integrity": "sha512-YxzWGF/OfU6WsHSynZFn74NGGp7dY27Bjy9JyyFo8wF5+2V1gpyDjveHKHGKugS/pMXlxfjzhv9E2Wmy9R7Iog==", - "dev": true, - "dependencies": { - "@vuepress/types": "1.9.10", - "cross-spawn": "^6.0.5" - } - }, - "node_modules/@vuepress/plugin-nprogress": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.10.tgz", - "integrity": "sha512-I1kkm6yWUQd7vwiV3lEDVpVP0Lr04K0zlczU502lDUa1RufSZ7vt+mlF5fOM28GqT+pKTEToWmm+VNT/R3qvMQ==", - "dev": true, - "dependencies": { - "@vuepress/types": "1.9.10", - "nprogress": "^0.2.0" - } - }, - "node_modules/@vuepress/plugin-register-components": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.9.10.tgz", - "integrity": "sha512-sgdJ5OydTPZAoTkselpvVP3Xsd6bfZ0FpaxOTinal0gJ99h49lvLu9bvzMx13rdGRFO/kRXn0qQQpwKTAfTPqA==", - "dev": true, - "dependencies": { - "@vuepress/shared-utils": "1.9.10", - "@vuepress/types": "1.9.10" - } - }, - "node_modules/@vuepress/plugin-search": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.9.10.tgz", - "integrity": "sha512-bn2XJikaRgQZXvu8upCjOWrxbLHIRTqnJ3w7G0mo6jCYWGVsHNo6XhVpqylpLR2PWnHT/ImO2bGo38/5Bag/tQ==", - "dev": true, - "dependencies": { - "@vuepress/types": "1.9.10" - } - }, - "node_modules/@vuepress/shared-utils": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.9.10.tgz", - "integrity": "sha512-M9A3DocPih+V8dKK2Zg9FJQ/f3JZrYsdaM/vQ9F48l8bPlzxw5NvqXIYMK4kKcGEyerQNTWCudoCpLL5uiU0hg==", - "dev": true, - "dependencies": { - "chalk": "^2.3.2", - "escape-html": "^1.0.3", - "fs-extra": "^7.0.1", - "globby": "^9.2.0", - "gray-matter": "^4.0.1", - "hash-sum": "^1.0.2", - "semver": "^6.0.0", - "toml": "^3.0.0", - "upath": "^1.1.0" - } - }, - "node_modules/@vuepress/theme-default": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.9.10.tgz", - "integrity": "sha512-XnXn9t+pYCIhWi3cZXJlighuy93FFm5yXdISAAlFlcNkshuGtqamkjacHV8q/QZMfOhSIs6wX7Hj88u2IsT5mw==", - "dev": true, - "dependencies": { - "@vuepress/plugin-active-header-links": "1.9.10", - "@vuepress/plugin-nprogress": "1.9.10", - "@vuepress/plugin-search": "1.9.10", - "@vuepress/types": "1.9.10", - "docsearch.js": "^2.5.2", - "lodash": "^4.17.15", - "stylus": "^0.54.8", - "stylus-loader": "^3.0.2", - "vuepress-plugin-container": "^2.0.2", - "vuepress-plugin-smooth-scroll": "^0.0.3" - } - }, - "node_modules/@vuepress/types": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/types/-/types-1.9.10.tgz", - "integrity": "sha512-TDNQn4og85onmBpLTTXXmncW3rUnYGr2MkuI8OIFJZetDNM49t1WbjNVlrT+kx7C6qXi6okDQgrHGYXajHZWfg==", - "dev": true, - "dependencies": { - "@types/markdown-it": "^10.0.0", - "@types/webpack-dev-server": "^3", - "webpack-chain": "^6.0.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agentkeepalive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz", - "integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.7.2", + "@vueuse/shared": "10.7.2", + "vue-demi": ">=0.14.6" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/antfu" } }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, "peerDependencies": { - "ajv": ">=5.0.0" + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/@vueuse/integrations": { + "version": "10.7.2", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.2.tgz", + "integrity": "sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==", "dev": true, + "dependencies": { + "@vueuse/core": "10.7.2", + "@vueuse/shared": "10.7.2", + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, "peerDependencies": { - "ajv": "^6.9.1" + "async-validator": "*", + "axios": "*", + "change-case": "*", + "drauu": "*", + "focus-trap": "*", + "fuse.js": "*", + "idb-keyval": "*", + "jwt-decode": "*", + "nprogress": "*", + "qrcode": "*", + "sortablejs": "*", + "universal-cookie": "*" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.7.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz", + "integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.7.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz", + "integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==", + "dev": true, + "dependencies": { + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } } }, "node_modules/algoliasearch": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz", - "integrity": "sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", + "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", "dev": true, "dependencies": { - "agentkeepalive": "^2.2.0", - "debug": "^2.6.9", - "envify": "^4.0.0", - "es6-promise": "^4.1.0", - "events": "^1.1.0", - "foreach": "^2.0.5", - "global": "^4.3.2", - "inherits": "^2.0.1", - "isarray": "^2.0.1", - "load-script": "^1.0.0", - "object-keys": "^1.0.11", - "querystring-es3": "^0.2.1", - "reduce": "^1.0.1", - "semver": "^5.1.0", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/algoliasearch/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/algoliasearch/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/algoliasearch/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autocomplete.js": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz", - "integrity": "sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==", - "dev": true, - "dependencies": { - "immediate": "^3.2.3" - } - }, - "node_modules/autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", - "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.20.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@algolia/cache-browser-local-storage": "4.22.1", + "@algolia/cache-common": "4.22.1", + "@algolia/cache-in-memory": "4.22.1", + "@algolia/client-account": "4.22.1", + "@algolia/client-analytics": "4.22.1", + "@algolia/client-common": "4.22.1", + "@algolia/client-personalization": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/logger-console": "4.22.1", + "@algolia/requester-browser-xhr": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/requester-node-http": "4.22.1", + "@algolia/transporter": "4.22.1" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dev": true, - "dependencies": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } + "peer": true }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/browserslist/node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "node_modules/buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", - "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/buffer/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/bundle-require": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-2.1.8.tgz", - "integrity": "sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw==", - "dev": true, - "peerDependencies": { - "esbuild": ">=0.13" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cac": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.2.tgz", - "integrity": "sha512-w0bH1IF9rEjdi0a6lTtlXYT+vBZEJL9oytaXXRdsD68MH6+SrZGOGsu7s2saHQvYXqwo/wBdkW75tt8wFpj+mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cache-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz", - "integrity": "sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==", - "dev": true, - "dependencies": { - "buffer-json": "^2.0.0", - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.2.3", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/cache-loader/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cache-loader/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cache-loader/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cache-loader/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cache-loader/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cache-loader/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cache-loader/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cache-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/cache-loader/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001301", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", - "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/chokidar/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/chokidar/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } + "optional": true, + "peer": true }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "dev": true, - "dependencies": { - "bluebird": "^3.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz", - "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==", - "dev": true, - "dependencies": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "node_modules/copy-webpack-plugin/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/copy-webpack-plugin/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz", - "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", - "dev": true, - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", - "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", - "dev": true, - "dependencies": { - "camelcase": "^5.2.0", - "icss-utils": "^4.1.0", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.14", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^2.0.6", - "postcss-modules-scope": "^2.1.0", - "postcss-modules-values": "^2.0.0", - "postcss-value-parser": "^3.3.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/css-loader/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/css-loader/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/css-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "dependencies": { - "css": "^2.0.0" - } - }, - "node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", - "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "dev": true }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -5211,8937 +1243,83 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" + "node": ">=0.12" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/docsearch.js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz", - "integrity": "sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==", - "dev": true, - "dependencies": { - "algoliasearch": "^3.24.5", - "autocomplete.js": "0.36.0", - "hogan.js": "^3.0.2", - "request": "^2.87.0", - "stack-utils": "^1.0.1", - "to-factory": "^1.0.0", - "zepto": "^1.2.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domhandler/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.51", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.51.tgz", - "integrity": "sha512-JNEmcYl3mk1tGQmy0EvL5eik/CKSBuzAyGP0QFdG6LIgxQe3II0BL1m2zKc2MZMf3uGqHWE1TFddJML0RpjSHQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "node_modules/envify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", - "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.0", - "through": "~2.3.4" - }, - "bin": { - "envify": "bin/envify" - } - }, - "node_modules/envinfo": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", - "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, "node_modules/esbuild": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.7.tgz", - "integrity": "sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, + "engines": { + "node": ">=12" + }, "optionalDependencies": { - "esbuild-android-arm64": "0.14.7", - "esbuild-darwin-64": "0.14.7", - "esbuild-darwin-arm64": "0.14.7", - "esbuild-freebsd-64": "0.14.7", - "esbuild-freebsd-arm64": "0.14.7", - "esbuild-linux-32": "0.14.7", - "esbuild-linux-64": "0.14.7", - "esbuild-linux-arm": "0.14.7", - "esbuild-linux-arm64": "0.14.7", - "esbuild-linux-mips64le": "0.14.7", - "esbuild-linux-ppc64le": "0.14.7", - "esbuild-netbsd-64": "0.14.7", - "esbuild-openbsd-64": "0.14.7", - "esbuild-sunos-64": "0.14.7", - "esbuild-windows-32": "0.14.7", - "esbuild-windows-64": "0.14.7", - "esbuild-windows-arm64": "0.14.7" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz", - "integrity": "sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz", - "integrity": "sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz", - "integrity": "sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz", - "integrity": "sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz", - "integrity": "sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz", - "integrity": "sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz", - "integrity": "sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz", - "integrity": "sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz", - "integrity": "sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz", - "integrity": "sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz", - "integrity": "sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz", - "integrity": "sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ] - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz", - "integrity": "sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz", - "integrity": "sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ] - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz", - "integrity": "sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz", - "integrity": "sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz", - "integrity": "sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "node_modules/focus-trap": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", + "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", "dev": true, "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dev": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "dependencies": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "tabbable": "^6.2.0" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "optional": true, + "peer": true }, "node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "node_modules/highlight.js": { - "version": "9.18.5", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz", - "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", - "deprecated": "Support has ended for 9.x series. Upgrade to @latest", - "dev": true, - "hasInstallScript": true, - "engines": { - "node": "*" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", - "dev": true, - "dependencies": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "bin": { - "hulk": "bin/hulk" - } - }, - "node_modules/hogan.js/node_modules/mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "node_modules/html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "node_modules/html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "dev": true, - "dependencies": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "bin": { - "html-minifier": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/htmlparser2/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/htmlparser2/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/htmlparser2/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", - "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/http-proxy-middleware/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-installed-globally/node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "dev": true, - "dependencies": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=", - "dev": true - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "node_modules/lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", - "dev": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", - "dev": true, - "peerDependencies": { - "markdown-it": "*" - } - }, - "node_modules/markdown-it-chain": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz", - "integrity": "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==", - "dev": true, - "dependencies": { - "webpack-chain": "^4.9.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "markdown-it": ">=5.0.0" - } - }, - "node_modules/markdown-it-chain/node_modules/javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", - "integrity": "sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==", - "dev": true - }, - "node_modules/markdown-it-chain/node_modules/webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", - "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", - "dev": true, - "dependencies": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" - } - }, - "node_modules/markdown-it-container": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz", - "integrity": "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=", - "dev": true - }, - "node_modules/markdown-it-emoji": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", - "integrity": "sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==", - "dev": true - }, - "node_modules/markdown-it-table-of-contents": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", - "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==", - "dev": true, - "engines": { - "node": ">6.4.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.4.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", - "dev": true - }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true, - "bin": { - "opencollective-postinstall": "index.js" - } - }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimize-css-assets-webpack-plugin": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz", - "integrity": "sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==", - "dev": true, - "dependencies": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", - "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0", - "postcss-value-parser": "^3.3.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-values": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", - "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", - "dev": true, - "dependencies": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "dependencies": { - "postcss": "^7.0.26" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", - "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true, - "optional": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dev": true, - "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/reduce": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz", - "integrity": "sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.1.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/selfsigned": { - "version": "1.10.14", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", - "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", - "dev": true, - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/sitemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", - "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", - "dev": true, - "dependencies": { - "lodash.chunk": "^4.2.0", - "lodash.padstart": "^4.6.1", - "whatwg-url": "^7.0.0", - "xmlbuilder": "^13.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=4.0.0" - } - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/smoothscroll-polyfill": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", - "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==", - "dev": true - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", - "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/std-env": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.3.1.tgz", - "integrity": "sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g==", - "dev": true, - "dependencies": { - "ci-info": "^3.1.1" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylus": { - "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", - "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", - "dev": true, - "dependencies": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - }, - "peerDependencies": { - "stylus": ">=0.52.4" - } - }, - "node_modules/stylus/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stylus/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylus/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/stylus/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "node_modules/to-factory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz", - "integrity": "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "dev": true - }, - "node_modules/toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "dev": true, - "dependencies": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglify-js/node_modules/commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, - "node_modules/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/update-notifier/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", - "dev": true - }, - "node_modules/vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", - "dev": true - }, - "node_modules/vue-loader": { - "version": "15.9.8", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", - "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", - "dev": true, - "dependencies": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - }, - "peerDependencies": { - "css-loader": "*", - "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" - }, - "peerDependenciesMeta": { - "cache-loader": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/vue-router": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", - "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==", - "dev": true - }, - "node_modules/vue-server-renderer": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz", - "integrity": "sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "lodash.template": "^4.5.0", - "lodash.uniq": "^4.5.0", - "resolve": "^1.2.0", - "serialize-javascript": "^3.1.0", - "source-map": "0.5.6" - } - }, - "node_modules/vue-server-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-server-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-server-renderer/node_modules/serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/vue-server-renderer/node_modules/source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-server-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", - "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", - "dev": true, - "dependencies": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "node_modules/vue-template-compiler": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", - "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "node_modules/vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", - "dev": true - }, - "node_modules/vuepress": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-1.9.10.tgz", - "integrity": "sha512-UnGm9vjQvG918SZVNvgiUlNimLqawdYPq0aPRXDpEB1VksvqegVFy/GKdA8ShXJaEpOMPSt7YD4uK21jaMs3kA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@vuepress/core": "1.9.10", - "@vuepress/theme-default": "1.9.10", - "@vuepress/types": "1.9.10", - "cac": "^6.5.6", - "envinfo": "^7.2.0", - "opencollective-postinstall": "^2.0.2", - "update-notifier": "^4.0.0" - }, - "bin": { - "vuepress": "cli.js" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/vuepress-html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==", - "dev": true, - "dependencies": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/vuepress-html-webpack-plugin/node_modules/big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/vuepress-html-webpack-plugin/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vuepress-html-webpack-plugin/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/vuepress-html-webpack-plugin/node_modules/loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "dependencies": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "node_modules/vuepress-html-webpack-plugin/node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/vuepress-plugin-code-copy": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vuepress-plugin-code-copy/-/vuepress-plugin-code-copy-1.0.6.tgz", - "integrity": "sha512-FiqwMtlb4rEsOI56O6sSkekcd3SlESxbkR2IaTIQxsMOMoalKfW5R9WlR1Pjm10v6jmU661Ex8MR11k9IzrNUg==", - "dev": true - }, - "node_modules/vuepress-plugin-container": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz", - "integrity": "sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA==", - "dev": true, - "dependencies": { - "@vuepress/shared-utils": "^1.2.0", - "markdown-it-container": "^2.0.0" - } - }, - "node_modules/vuepress-plugin-sitemap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz", - "integrity": "sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ==", - "dev": true, - "dependencies": { - "sitemap": "^3.0.0" - }, - "bin": { - "vuepress-sitemap": "cli.js" - } - }, - "node_modules/vuepress-plugin-smooth-scroll": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz", - "integrity": "sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg==", - "dev": true, - "dependencies": { - "smoothscroll-polyfill": "^0.4.3" - } - }, - "node_modules/vuepress-theme-default-prefers-color-scheme": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vuepress-theme-default-prefers-color-scheme/-/vuepress-theme-default-prefers-color-scheme-2.0.0.tgz", - "integrity": "sha512-4sA3DCiaIIHVjcIC5+mF00mf29IU27KSH97Ga4xb4nUwwlC6eYHg2qchEVOgV25XogCtGgpZ/DCrTkywxvuBcg==", - "dev": true - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/watchpack/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -14152,12610 +1330,438 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/watchpack/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "optional": true, + "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/watchpack/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/watchpack/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/watchpack/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "node_modules/webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" + "node": "*" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/magic-string": { + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true + "engines": { + "node": ">=12" + } + }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minisearch": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz", + "integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==", + "dev": true + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - } - }, - "node_modules/webpack-chain": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", - "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", - "dev": true, - "dependencies": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.1" + ], + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "node": "^10 || ^12 || >=14" } }, - "node_modules/webpack-dev-server": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", - "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "node_modules/preact": { + "version": "10.19.5", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.5.tgz", + "integrity": "sha512-OPELkDmSVbKjbFqF9tgvOowiiQ9TmsJljIzXRyNE8nGiis94pwv1siF78rQkAP1Q1738Ce6pellRg/Ns/CtHqQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rollup": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, "dependencies": { - "ansi-html-community": "0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" + "@types/estree": "1.0.5" }, "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">= 6.11.5" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", + "fsevents": "~2.3.2" } }, - "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/search-insights": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", + "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", + "dev": true, + "peer": true + }, + "node_modules/shiki": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.1.5.tgz", + "integrity": "sha512-754GuKIwkUdT810Xm8btuyNQPL+q3PqOkwGW/VlmAWyMYp+HbvvDt69sWXO1sm5aeczBJQjmQTTMR4GkKQNQPw==", "dev": true, "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, + "@shikijs/core": "1.1.5" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "optional": true, + "peer": true, "engines": { - "node": ">=4.0.0" + "node": ">= 8" } }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpackbar": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz", - "integrity": "sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.1.0", - "chalk": "^2.4.1", - "consola": "^2.6.0", - "figures": "^3.0.0", - "pretty-time": "^1.1.0", - "std-env": "^2.2.1", - "text-table": "^0.2.0", - "wrap-ansi": "^5.1.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "node_modules/stylus": { + "version": "0.62.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.62.0.tgz", + "integrity": "sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" + "@adobe/css-tools": "~4.3.1", + "debug": "^4.3.2", + "glob": "^7.1.6", + "sax": "~1.3.0", + "source-map": "^0.7.3" }, "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/stylus" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "dev": true }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "node_modules/vite": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz", + "integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==", "dev": true, "dependencies": { - "string-width": "^4.0.0" + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "node": "^18.0.0 || >=20.0.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "optionalDependencies": { + "fsevents": "~2.3.3" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/vitepress": { + "version": "1.0.0-rc.44", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.44.tgz", + "integrity": "sha512-tO5taxGI7fSpBK1D8zrZTyJJERlyU9nnt0jHSt3fywfq3VKn977Hg0wUuTkEmwXlFYwuW26+6+3xorf4nD3XvA==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "@docsearch/css": "^3.5.2", + "@docsearch/js": "^3.5.2", + "@shikijs/core": "^1.1.5", + "@shikijs/transformers": "^1.1.5", + "@types/markdown-it": "^13.0.7", + "@vitejs/plugin-vue": "^5.0.4", + "@vue/devtools-api": "^7.0.14", + "@vueuse/core": "^10.7.2", + "@vueuse/integrations": "^10.7.2", + "focus-trap": "^7.5.4", + "mark.js": "8.11.1", + "minisearch": "^6.3.0", + "shiki": "^1.1.5", + "vite": "^5.1.3", + "vue": "^3.4.19" }, - "engines": { - "node": ">=6" + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4.3.2", + "postcss": "^8.4.35" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.19.tgz", + "integrity": "sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.4.19", + "@vue/compiler-sfc": "3.4.19", + "@vue/runtime-dom": "3.4.19", + "@vue/server-renderer": "3.4.19", + "@vue/shared": "3.4.19" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/zepto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz", - "integrity": "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=", - "dev": true - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", - "dev": true - }, - "@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", - "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz", - "integrity": "sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.16.7" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz", - "integrity": "sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/highlight.js": { - "version": "9.12.4", - "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.4.tgz", - "integrity": "sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww==", - "dev": true - }, - "@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true - }, - "@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", - "dev": true - }, - "@types/markdown-it": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-10.0.3.tgz", - "integrity": "sha512-daHJk22isOUvNssVGF2zDnnSyxHhFYhtjeX4oQaKD6QzL3ZR1QSgiD1g+Q6/WSWYVogNXYDXODtbgW/WiFCtyw==", - "dev": true, - "requires": { - "@types/highlight.js": "^9.7.0", - "@types/linkify-it": "*", - "@types/mdurl": "*", - "highlight.js": "^9.7.0" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz", - "integrity": "sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==", - "dev": true - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", - "dev": true, - "requires": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", - "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", - "dev": true - }, - "@types/uglify-js": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.1.tgz", - "integrity": "sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack": { - "version": "4.41.33", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.33.tgz", - "integrity": "sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack-dev-server": { - "version": "3.11.6", - "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz", - "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==", - "dev": true, - "requires": { - "@types/connect-history-api-fallback": "*", - "@types/express": "*", - "@types/serve-static": "*", - "@types/webpack": "^4", - "http-proxy-middleware": "^1.0.0" - } - }, - "@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } - }, - "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", - "dev": true - }, - "@vue/babel-helper-vue-transform-on": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", - "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", - "dev": true - }, - "@vue/babel-plugin-jsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", - "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - } - }, - "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", - "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - } - } - }, - "@vue/babel-preset-app": { - "version": "4.5.15", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.15.tgz", - "integrity": "sha512-J+YttzvwRfV1BPczf8r3qCevznYk+jh531agVF+5EYlHF4Sgh/cGXTz9qkkiux3LQgvhEGXgmCteg1n38WuuKg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.0", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.11.0", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.0", - "@vue/babel-plugin-jsx": "^1.0.3", - "@vue/babel-preset-jsx": "^1.2.4", - "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", - "core-js-compat": "^3.6.5", - "semver": "^6.1.0" - } - }, - "@vue/babel-preset-jsx": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", - "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", - "dev": true, - "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", - "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", - "@vue/babel-sugar-functional-vue": "^1.2.2", - "@vue/babel-sugar-inject-h": "^1.2.2", - "@vue/babel-sugar-v-model": "^1.2.3", - "@vue/babel-sugar-v-on": "^1.2.3" - } - }, - "@vue/babel-sugar-composition-api-inject-h": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", - "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-composition-api-render-instance": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", - "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-functional-vue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", - "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-inject-h": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", - "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-v-model": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", - "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - } - } - }, - "@vue/babel-sugar-v-on": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", - "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "@vue/component-compiler-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", - "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", - "dev": true, - "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.36", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2 || ^2.0.0", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "@vuepress/core": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-1.9.10.tgz", - "integrity": "sha512-H9ddo5fSinPb8QYl8OJFbZikMpOW84bm/U3Drzz8CnCXNtpda7CU2wX/XzOhe98G8jp45xhtZRkxOrqzBBAShA==", - "dev": true, - "requires": { - "@babel/core": "^7.8.4", - "@vue/babel-preset-app": "^4.1.2", - "@vuepress/markdown": "1.9.10", - "@vuepress/markdown-loader": "1.9.10", - "@vuepress/plugin-last-updated": "1.9.10", - "@vuepress/plugin-register-components": "1.9.10", - "@vuepress/shared-utils": "1.9.10", - "@vuepress/types": "1.9.10", - "autoprefixer": "^9.5.1", - "babel-loader": "^8.0.4", - "bundle-require": "2.1.8", - "cache-loader": "^3.0.0", - "chokidar": "^2.0.3", - "connect-history-api-fallback": "^1.5.0", - "copy-webpack-plugin": "^5.0.2", - "core-js": "^3.6.4", - "cross-spawn": "^6.0.5", - "css-loader": "^2.1.1", - "esbuild": "0.14.7", - "file-loader": "^3.0.1", - "js-yaml": "^3.13.1", - "lru-cache": "^5.1.1", - "mini-css-extract-plugin": "0.6.0", - "optimize-css-assets-webpack-plugin": "^5.0.1", - "portfinder": "^1.0.13", - "postcss-loader": "^3.0.0", - "postcss-safe-parser": "^4.0.1", - "toml": "^3.0.0", - "url-loader": "^1.0.1", - "vue": "^2.6.10", - "vue-loader": "^15.7.1", - "vue-router": "^3.4.5", - "vue-server-renderer": "^2.6.10", - "vue-template-compiler": "^2.6.10", - "vuepress-html-webpack-plugin": "^3.2.0", - "vuepress-plugin-container": "^2.0.2", - "webpack": "^4.8.1", - "webpack-chain": "^6.0.0", - "webpack-dev-server": "^3.5.1", - "webpack-merge": "^4.1.2", - "webpackbar": "3.2.0" - } - }, - "@vuepress/markdown": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.9.10.tgz", - "integrity": "sha512-sXTLjeZzH8SQuAL5AEH0hhsMljjNJbzWbBvzaj5yQCCdf+3sp/dJ0kwnBSnQjFPPnzPg5t3tLKGUYHyW0KiKzA==", - "dev": true, - "requires": { - "@vuepress/shared-utils": "1.9.10", - "markdown-it": "^8.4.1", - "markdown-it-anchor": "^5.0.2", - "markdown-it-chain": "^1.3.0", - "markdown-it-emoji": "^1.4.0", - "markdown-it-table-of-contents": "^0.4.0", - "prismjs": "^1.13.0" - } - }, - "@vuepress/markdown-loader": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.9.10.tgz", - "integrity": "sha512-94BlwKc+lOaN/A5DkyA9KWHvMlMC1sWunAXE3Tv0WYzgYLDs9QqCsx7L5kLkpcOOVVm/8kBJumnXvVBwhqJddw==", - "dev": true, - "requires": { - "@vuepress/markdown": "1.9.10", - "loader-utils": "^1.1.0", - "lru-cache": "^5.1.1" - } - }, - "@vuepress/plugin-active-header-links": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.9.10.tgz", - "integrity": "sha512-2dRr3DE2UBFXhyMtLR3sGTdRyDM8YStuY6AOoQmoSgwy1IHt7PO7ypOuf1akF+1Nv8Q2aISU06q6TExZouu3Mw==", - "dev": true, - "requires": { - "@vuepress/types": "1.9.10", - "lodash.debounce": "^4.0.8" - } - }, - "@vuepress/plugin-last-updated": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.9.10.tgz", - "integrity": "sha512-YxzWGF/OfU6WsHSynZFn74NGGp7dY27Bjy9JyyFo8wF5+2V1gpyDjveHKHGKugS/pMXlxfjzhv9E2Wmy9R7Iog==", - "dev": true, - "requires": { - "@vuepress/types": "1.9.10", - "cross-spawn": "^6.0.5" - } - }, - "@vuepress/plugin-nprogress": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.9.10.tgz", - "integrity": "sha512-I1kkm6yWUQd7vwiV3lEDVpVP0Lr04K0zlczU502lDUa1RufSZ7vt+mlF5fOM28GqT+pKTEToWmm+VNT/R3qvMQ==", - "dev": true, - "requires": { - "@vuepress/types": "1.9.10", - "nprogress": "^0.2.0" - } - }, - "@vuepress/plugin-register-components": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.9.10.tgz", - "integrity": "sha512-sgdJ5OydTPZAoTkselpvVP3Xsd6bfZ0FpaxOTinal0gJ99h49lvLu9bvzMx13rdGRFO/kRXn0qQQpwKTAfTPqA==", - "dev": true, - "requires": { - "@vuepress/shared-utils": "1.9.10", - "@vuepress/types": "1.9.10" - } - }, - "@vuepress/plugin-search": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.9.10.tgz", - "integrity": "sha512-bn2XJikaRgQZXvu8upCjOWrxbLHIRTqnJ3w7G0mo6jCYWGVsHNo6XhVpqylpLR2PWnHT/ImO2bGo38/5Bag/tQ==", - "dev": true, - "requires": { - "@vuepress/types": "1.9.10" - } - }, - "@vuepress/shared-utils": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.9.10.tgz", - "integrity": "sha512-M9A3DocPih+V8dKK2Zg9FJQ/f3JZrYsdaM/vQ9F48l8bPlzxw5NvqXIYMK4kKcGEyerQNTWCudoCpLL5uiU0hg==", - "dev": true, - "requires": { - "chalk": "^2.3.2", - "escape-html": "^1.0.3", - "fs-extra": "^7.0.1", - "globby": "^9.2.0", - "gray-matter": "^4.0.1", - "hash-sum": "^1.0.2", - "semver": "^6.0.0", - "toml": "^3.0.0", - "upath": "^1.1.0" - } - }, - "@vuepress/theme-default": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.9.10.tgz", - "integrity": "sha512-XnXn9t+pYCIhWi3cZXJlighuy93FFm5yXdISAAlFlcNkshuGtqamkjacHV8q/QZMfOhSIs6wX7Hj88u2IsT5mw==", - "dev": true, - "requires": { - "@vuepress/plugin-active-header-links": "1.9.10", - "@vuepress/plugin-nprogress": "1.9.10", - "@vuepress/plugin-search": "1.9.10", - "@vuepress/types": "1.9.10", - "docsearch.js": "^2.5.2", - "lodash": "^4.17.15", - "stylus": "^0.54.8", - "stylus-loader": "^3.0.2", - "vuepress-plugin-container": "^2.0.2", - "vuepress-plugin-smooth-scroll": "^0.0.3" - } - }, - "@vuepress/types": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/@vuepress/types/-/types-1.9.10.tgz", - "integrity": "sha512-TDNQn4og85onmBpLTTXXmncW3rUnYGr2MkuI8OIFJZetDNM49t1WbjNVlrT+kx7C6qXi6okDQgrHGYXajHZWfg==", - "dev": true, - "requires": { - "@types/markdown-it": "^10.0.0", - "@types/webpack-dev-server": "^3", - "webpack-chain": "^6.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "agentkeepalive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz", - "integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "requires": {} - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "algoliasearch": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz", - "integrity": "sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==", - "dev": true, - "requires": { - "agentkeepalive": "^2.2.0", - "debug": "^2.6.9", - "envify": "^4.0.0", - "es6-promise": "^4.1.0", - "events": "^1.1.0", - "foreach": "^2.0.5", - "global": "^4.3.2", - "inherits": "^2.0.1", - "isarray": "^2.0.1", - "load-script": "^1.0.0", - "object-keys": "^1.0.11", - "querystring-es3": "^0.2.1", - "reduce": "^1.0.1", - "semver": "^5.1.0", - "tunnel-agent": "^0.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autocomplete.js": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz", - "integrity": "sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==", - "dev": true, - "requires": { - "immediate": "^3.2.3" - } - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", - "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.20.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dev": true, - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "dependencies": { - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - } - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", - "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bundle-require": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-2.1.8.tgz", - "integrity": "sha512-oOEg3A0hy/YzvNWNowtKD0pmhZKseOFweCbgyMqTIih4gRY1nJWsvrOCT27L9NbIyL5jMjTFrAUpGxxpW68Puw==", - "dev": true, - "requires": {} - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cac": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.2.tgz", - "integrity": "sha512-w0bH1IF9rEjdi0a6lTtlXYT+vBZEJL9oytaXXRdsD68MH6+SrZGOGsu7s2saHQvYXqwo/wBdkW75tt8wFpj+mw==", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cache-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz", - "integrity": "sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==", - "dev": true, - "requires": { - "buffer-json": "^2.0.0", - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.2.3", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001301", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", - "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "dev": true, - "requires": { - "bluebird": "^3.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz", - "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==", - "dev": true, - "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } - } - }, - "core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "dev": true - }, - "core-js-compat": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz", - "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", - "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", - "dev": true, - "requires": { - "camelcase": "^5.2.0", - "icss-utils": "^4.1.0", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.14", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^2.0.6", - "postcss-modules-scope": "^2.1.0", - "postcss-modules-values": "^2.0.0", - "postcss-value-parser": "^3.3.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "requires": { - "css": "^2.0.0" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", - "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "docsearch.js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz", - "integrity": "sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==", - "dev": true, - "requires": { - "algoliasearch": "^3.24.5", - "autocomplete.js": "0.36.0", - "hogan.js": "^3.0.2", - "request": "^2.87.0", - "stack-utils": "^1.0.1", - "to-factory": "^1.0.0", - "zepto": "^1.2.0" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - } - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.51", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.51.tgz", - "integrity": "sha512-JNEmcYl3mk1tGQmy0EvL5eik/CKSBuzAyGP0QFdG6LIgxQe3II0BL1m2zKc2MZMf3uGqHWE1TFddJML0RpjSHQ==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "envify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", - "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", - "dev": true, - "requires": { - "esprima": "^4.0.0", - "through": "~2.3.4" - } - }, - "envinfo": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", - "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "esbuild": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.7.tgz", - "integrity": "sha512-+u/msd6iu+HvfysUPkZ9VHm83LImmSNnecYPfFI01pQ7TTcsFR+V0BkybZX7mPtIaI7LCrse6YRj+v3eraJSgw==", - "dev": true, - "requires": { - "esbuild-android-arm64": "0.14.7", - "esbuild-darwin-64": "0.14.7", - "esbuild-darwin-arm64": "0.14.7", - "esbuild-freebsd-64": "0.14.7", - "esbuild-freebsd-arm64": "0.14.7", - "esbuild-linux-32": "0.14.7", - "esbuild-linux-64": "0.14.7", - "esbuild-linux-arm": "0.14.7", - "esbuild-linux-arm64": "0.14.7", - "esbuild-linux-mips64le": "0.14.7", - "esbuild-linux-ppc64le": "0.14.7", - "esbuild-netbsd-64": "0.14.7", - "esbuild-openbsd-64": "0.14.7", - "esbuild-sunos-64": "0.14.7", - "esbuild-windows-32": "0.14.7", - "esbuild-windows-64": "0.14.7", - "esbuild-windows-arm64": "0.14.7" - } - }, - "esbuild-android-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.7.tgz", - "integrity": "sha512-9/Q1NC4JErvsXzJKti0NHt+vzKjZOgPIjX/e6kkuCzgfT/GcO3FVBcGIv4HeJG7oMznE6KyKhvLrFgt7CdU2/w==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.7.tgz", - "integrity": "sha512-Z9X+3TT/Xj+JiZTVlwHj2P+8GoiSmUnGVz0YZTSt8WTbW3UKw5Pw2ucuJ8VzbD2FPy0jbIKJkko/6CMTQchShQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.7.tgz", - "integrity": "sha512-68e7COhmwIiLXBEyxUxZSSU0akgv8t3e50e2QOtKdBUE0F6KIRISzFntLe2rYlNqSsjGWsIO6CCc9tQxijjSkw==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.7.tgz", - "integrity": "sha512-76zy5jAjPiXX/S3UvRgG85Bb0wy0zv/J2lel3KtHi4V7GUTBfhNUPt0E5bpSXJ6yMT7iThhnA5rOn+IJiUcslQ==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.7.tgz", - "integrity": "sha512-lSlYNLiqyzd7qCN5CEOmLxn7MhnGHPcu5KuUYOG1i+t5A6q7LgBmfYC9ZHJBoYyow3u4CNu79AWHbvVLpE/VQQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.7.tgz", - "integrity": "sha512-Vk28u409wVOXqTaT6ek0TnfQG4Ty1aWWfiysIaIRERkNLhzLhUf4i+qJBN8mMuGTYOkE40F0Wkbp6m+IidOp2A==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.7.tgz", - "integrity": "sha512-+Lvz6x+8OkRk3K2RtZwO+0a92jy9si9cUea5Zoru4yJ/6EQm9ENX5seZE0X9DTwk1dxJbjmLsJsd3IoowyzgVg==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.7.tgz", - "integrity": "sha512-OzpXEBogbYdcBqE4uKynuSn5YSetCvK03Qv1HcOY1VN6HmReuatjJ21dCH+YPHSpMEF0afVCnNfffvsGEkxGJQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.7.tgz", - "integrity": "sha512-kJd5beWSqteSAW086qzCEsH6uwpi7QRIpzYWHzEYwKKu9DiG1TwIBegQJmLpPsLp4v5RAFjea0JAmAtpGtRpqg==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.7.tgz", - "integrity": "sha512-mFWpnDhZJmj/h7pxqn1GGDsKwRfqtV7fx6kTF5pr4PfXe8pIaTERpwcKkoCwZUkWAOmUEjMIUAvFM72A6hMZnA==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.7.tgz", - "integrity": "sha512-wM7f4M0bsQXfDL4JbbYD0wsr8cC8KaQ3RPWc/fV27KdErPW7YsqshZZSjDV0kbhzwpNNdhLItfbaRT8OE8OaKA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.7.tgz", - "integrity": "sha512-J/afS7woKyzGgAL5FlgvMyqgt5wQ597lgsT+xc2yJ9/7BIyezeXutXqfh05vszy2k3kSvhLesugsxIA71WsqBw==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.7.tgz", - "integrity": "sha512-7CcxgdlCD+zAPyveKoznbgr3i0Wnh0L8BDGRCjE/5UGkm5P/NQko51tuIDaYof8zbmXjjl0OIt9lSo4W7I8mrw==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.7.tgz", - "integrity": "sha512-GKCafP2j/KUljVC3nesw1wLFSZktb2FGCmoT1+730zIF5O6hNroo0bSEofm6ZK5mNPnLiSaiLyRB9YFgtkd5Xg==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.7.tgz", - "integrity": "sha512-5I1GeL/gZoUUdTPA0ws54bpYdtyeA2t6MNISalsHpY269zK8Jia/AXB3ta/KcDHv2SvNwabpImeIPXC/k0YW6A==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.7.tgz", - "integrity": "sha512-CIGKCFpQOSlYsLMbxt8JjxxvVw9MlF1Rz2ABLVfFyHUF5OeqHD5fPhGrCVNaVrhO8Xrm+yFmtjcZudUGr5/WYQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.7.tgz", - "integrity": "sha512-eOs1eSivOqN7cFiRIukEruWhaCf75V0N8P0zP7dh44LIhLl8y6/z++vv9qQVbkBm5/D7M7LfCfCTmt1f1wHOCw==", - "dev": true, - "optional": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "requires": { - "ini": "1.3.7" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "highlight.js": { - "version": "9.18.5", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz", - "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", - "dev": true, - "requires": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "dependencies": { - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true - } - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - } - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - }, - "dependencies": { - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", - "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - } - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "dependencies": { - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - } - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "dev": true, - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=", - "dev": true - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", - "dev": true - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", - "dev": true, - "requires": {} - }, - "markdown-it-chain": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz", - "integrity": "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==", - "dev": true, - "requires": { - "webpack-chain": "^4.9.0" - }, - "dependencies": { - "javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", - "integrity": "sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==", - "dev": true - }, - "webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", - "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", - "dev": true, - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" - } - } - } - }, - "markdown-it-container": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz", - "integrity": "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=", - "dev": true - }, - "markdown-it-emoji": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", - "integrity": "sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==", - "dev": true - }, - "markdown-it-table-of-contents": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", - "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "requires": { - "dom-walk": "^0.1.0" - } - }, - "mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", - "dev": true - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", - "dev": true - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz", - "integrity": "sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q==", - "dev": true, - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", - "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0", - "postcss-value-parser": "^3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", - "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^7.0.6" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", - "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true, - "optional": true - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "dev": true - }, - "prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dev": true, - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "reduce": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz", - "integrity": "sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==", - "dev": true, - "requires": { - "object-keys": "^1.1.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.14", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", - "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - } - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "sitemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", - "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", - "dev": true, - "requires": { - "lodash.chunk": "^4.2.0", - "lodash.padstart": "^4.6.1", - "whatwg-url": "^7.0.0", - "xmlbuilder": "^13.0.0" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "smoothscroll-polyfill": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", - "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } - } - }, - "sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", - "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "std-env": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.3.1.tgz", - "integrity": "sha512-eOsoKTWnr6C8aWrqJJ2KAReXoa7Vn5Ywyw6uCXgA/xDhxPoaIsBa5aNJmISY04dLwXPBnDHW4diGM7Sn5K4R/g==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "stylus": { - "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", - "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", - "dev": true, - "requires": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-factory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz", - "integrity": "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "dev": true - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - } - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "vue": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", - "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", - "dev": true - }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", - "dev": true - }, - "vue-loader": { - "version": "15.9.8", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", - "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", - "dev": true, - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - } - }, - "vue-router": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", - "integrity": "sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==", - "dev": true - }, - "vue-server-renderer": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz", - "integrity": "sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "lodash.template": "^4.5.0", - "lodash.uniq": "^4.5.0", - "resolve": "^1.2.0", - "serialize-javascript": "^3.1.0", - "source-map": "0.5.6" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", - "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", - "dev": true, - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.6.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", - "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", - "dev": true - }, - "vuepress": { - "version": "1.9.10", - "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-1.9.10.tgz", - "integrity": "sha512-UnGm9vjQvG918SZVNvgiUlNimLqawdYPq0aPRXDpEB1VksvqegVFy/GKdA8ShXJaEpOMPSt7YD4uK21jaMs3kA==", - "dev": true, - "requires": { - "@vuepress/core": "1.9.10", - "@vuepress/theme-default": "1.9.10", - "@vuepress/types": "1.9.10", - "cac": "^6.5.6", - "envinfo": "^7.2.0", - "opencollective-postinstall": "^2.0.2", - "update-notifier": "^4.0.0" - } - }, - "vuepress-html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "vuepress-plugin-code-copy": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/vuepress-plugin-code-copy/-/vuepress-plugin-code-copy-1.0.6.tgz", - "integrity": "sha512-FiqwMtlb4rEsOI56O6sSkekcd3SlESxbkR2IaTIQxsMOMoalKfW5R9WlR1Pjm10v6jmU661Ex8MR11k9IzrNUg==", - "dev": true - }, - "vuepress-plugin-container": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.5.tgz", - "integrity": "sha512-TQrDX/v+WHOihj3jpilVnjXu9RcTm6m8tzljNJwYhxnJUW0WWQ0hFLcDTqTBwgKIFdEiSxVOmYE+bJX/sq46MA==", - "dev": true, - "requires": { - "@vuepress/shared-utils": "^1.2.0", - "markdown-it-container": "^2.0.0" - } - }, - "vuepress-plugin-sitemap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz", - "integrity": "sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ==", - "dev": true, - "requires": { - "sitemap": "^3.0.0" - } - }, - "vuepress-plugin-smooth-scroll": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz", - "integrity": "sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg==", - "dev": true, - "requires": { - "smoothscroll-polyfill": "^0.4.3" - } - }, - "vuepress-theme-default-prefers-color-scheme": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vuepress-theme-default-prefers-color-scheme/-/vuepress-theme-default-prefers-color-scheme-2.0.0.tgz", - "integrity": "sha512-4sA3DCiaIIHVjcIC5+mF00mf29IU27KSH97Ga4xb4nUwwlC6eYHg2qchEVOgV25XogCtGgpZ/DCrTkywxvuBcg==", - "dev": true - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, - "dependencies": { - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-chain": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", - "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", - "dev": true, - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.1" - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", - "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", - "dev": true, - "requires": { - "ansi-html-community": "0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "webpackbar": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz", - "integrity": "sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==", - "dev": true, - "requires": { - "ansi-escapes": "^4.1.0", - "chalk": "^2.4.1", - "consola": "^2.6.0", - "figures": "^3.0.0", - "pretty-time": "^1.1.0", - "std-env": "^2.2.1", - "text-table": "^0.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - }, - "zepto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz", - "integrity": "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=", - "dev": true + "peer": true } } } diff --git a/docs/package.json b/docs/package.json index ddd302ba..23d633d1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,12 +1,10 @@ { "scripts": { - "dev": "vuepress dev", - "build": "vuepress build" + "dev": "vitepress dev", + "build": "vitepress build", + "preview": "vitepress preview" }, "devDependencies": { - "vuepress": "^1.9.10", - "vuepress-plugin-code-copy": "^1.0.6", - "vuepress-plugin-sitemap": "^2.3.1", - "vuepress-theme-default-prefers-color-scheme": "^2.0.0" + "vitepress": "^1.0.0-rc.44" } } diff --git a/docs/pl-PL/README.md b/docs/pl-PL/README.md index 713ff476..eb4861b3 100644 --- a/docs/pl-PL/README.md +++ b/docs/pl-PL/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Minimalny, szybki i nieskończenie konfigurowalny wiersz poleceń dla dowolnej powłoki! -actionText: Pierwsze kroki → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Minimalny, szybki i nieskończenie konfigurowalny wiersz poleceń dla dowolnej powłoki! + actions: + - theme: brand + text: Pierwsze kroki → + link: ./guide/ features: - - + - title: Kompatybilność przede wszystkim details: Działa na większości powszechnych powłokach, na większości najpopularniejszych systemach. Używaj go wszędzie! - - + - title: Napędzany językiem Rust details: Zapewnia najlepszą w swojej klasie prędkość i bezpieczeństwo języka Rust, w celu zapewnienia jak najszybszej i niezawodnej odpowiedzi. - - + - title: Konfigurowalny details: Każdy mały detal jest konfigurowalny do Twoich preferencji, aby wiersz poleceń był tak minimalny lub tak bogaty w funkcje, jak tylko zechcesz. footer: Licencja ISC | Copyright © 2019-obecnie Kontrybutorzy Starship diff --git a/docs/pl-PL/advanced-config/README.md b/docs/pl-PL/advanced-config/README.md index c32224cf..b3e25ff9 100644 --- a/docs/pl-PL/advanced-config/README.md +++ b/docs/pl-PL/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/pl-PL/config/README.md b/docs/pl-PL/config/README.md index 5d0824c4..92291fa6 100644 --- a/docs/pl-PL/config/README.md +++ b/docs/pl-PL/config/README.md @@ -158,7 +158,7 @@ Na przykład: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: porada diff --git a/docs/pl-PL/faq/README.md b/docs/pl-PL/faq/README.md index 2757bc7b..77ab5ac7 100644 --- a/docs/pl-PL/faq/README.md +++ b/docs/pl-PL/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## W wierszu poleceń zauważyłem symbole których się nie spodziewałem bądź nie rozumiem. Co one oznaczają? diff --git a/docs/pl-PL/guide/README.md b/docs/pl-PL/guide/README.md index 89a4d1b5..bc313993 100644 --- a/docs/pl-PL/guide/README.md +++ b/docs/pl-PL/guide/README.md @@ -40,11 +40,11 @@

- Strona internetowa + Strona internetowa · Instalacja · - Konfiguracja + Konfiguracja

@@ -171,7 +171,7 @@ - **Łatwy w obsłudze:** szybka instalacja - zacznij korzystać w kilka minut.

-Przeglądaj dokumentację Starship  ▶ +Przeglądaj dokumentację Starship  ▶

diff --git a/docs/pl-PL/installing/README.md b/docs/pl-PL/installing/README.md index 4b5e874f..6f7a0408 100644 --- a/docs/pl-PL/installing/README.md +++ b/docs/pl-PL/installing/README.md @@ -5,7 +5,7 @@ Aby zainstalować starship, musisz zrobić dwie rzeczy: 1. Pobrać plik wykonywalny **starship** na swój komputer 1. Skonfigurować swoją powłokę żeby używała pliku wykonywalnego starship jako wiersza poleceń poprzez modyfikację skryptów inicjalizacyjnych -Dla większości użytkowników instrukcje na [stronie głównej](/guide/#🚀-installation) są wystarczające. Jednakże, dla niektórych wyspecjalizowanych platform, potrzebne będą inne. +Dla większości użytkowników instrukcje na [stronie głównej](../guide/#🚀-installation) są wystarczające. Jednakże, dla niektórych wyspecjalizowanych platform, potrzebne będą inne. Istnieje tak wiele platform, że nie zmieściły się one w głównym pliku README.md, więc poniżej znajdują się instrukcje instalacji dla innych platform od społeczności. Nie ma tutaj Twojej? Jeśli się o tym dowiesz, dodaj je tutaj! diff --git a/docs/pl-PL/presets/bracketed-segments.md b/docs/pl-PL/presets/bracketed-segments.md index c7f2bb50..6bcef1f4 100644 --- a/docs/pl-PL/presets/bracketed-segments.md +++ b/docs/pl-PL/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#bracketed-segments) +[Powrót do ustawień predefiniowanych](./#bracketed-segments) # Ustawienia modułów w nawiasach kwadratowych @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/pl-PL/presets/gruvbox-rainbow.md b/docs/pl-PL/presets/gruvbox-rainbow.md index 8e3abe06..dd4ba2ce 100644 --- a/docs/pl-PL/presets/gruvbox-rainbow.md +++ b/docs/pl-PL/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#gruvbox-rainbow) +[Powrót do ustawień predefiniowanych](./#gruvbox-rainbow) # Ustawienia Gruvbox Rainbow @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/pl-PL/presets/jetpack.md b/docs/pl-PL/presets/jetpack.md index 9206a9dc..73e032cb 100644 --- a/docs/pl-PL/presets/jetpack.md +++ b/docs/pl-PL/presets/jetpack.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#jetpack) +[Powrót do ustawień predefiniowanych](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/pl-PL/presets/nerd-font.md b/docs/pl-PL/presets/nerd-font.md index b613f82b..449311f2 100644 --- a/docs/pl-PL/presets/nerd-font.md +++ b/docs/pl-PL/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#nerd-font-symbols) +[Powrót do ustawień predefiniowanych](./#nerd-font-symbols) # Ustawienia symboli Nerd Font @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/pl-PL/presets/no-empty-icons.md b/docs/pl-PL/presets/no-empty-icons.md index bb55880d..4f22fed7 100644 --- a/docs/pl-PL/presets/no-empty-icons.md +++ b/docs/pl-PL/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#no-empty-icons) +[Powrót do ustawień predefiniowanych](./#no-empty-icons) # Ustawienia No Empty Icons @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/pl-PL/presets/no-nerd-font.md b/docs/pl-PL/presets/no-nerd-font.md index cd9d8930..c047d2cd 100644 --- a/docs/pl-PL/presets/no-nerd-font.md +++ b/docs/pl-PL/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#no-nerd-fonts) +[Powrót do ustawień predefiniowanych](./#no-nerd-fonts) # Ustawienia No Nerd Fonts @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/pl-PL/presets/no-runtimes.md b/docs/pl-PL/presets/no-runtimes.md index 0e492673..a6d2adeb 100644 --- a/docs/pl-PL/presets/no-runtimes.md +++ b/docs/pl-PL/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#no-runtime-versions) +[Powrót do ustawień predefiniowanych](./#no-runtime-versions) # Ustawienia No Runtime Versions @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/pl-PL/presets/pastel-powerline.md b/docs/pl-PL/presets/pastel-powerline.md index 6d5aade8..652ff606 100644 --- a/docs/pl-PL/presets/pastel-powerline.md +++ b/docs/pl-PL/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#pastel-powerline) +[Powrót do ustawień predefiniowanych](./#pastel-powerline) # Ustawienia Pastel Powerline @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/pl-PL/presets/plain-text.md b/docs/pl-PL/presets/plain-text.md index 7dbaa359..cdb4fd9f 100644 --- a/docs/pl-PL/presets/plain-text.md +++ b/docs/pl-PL/presets/plain-text.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#plain-text-symbols) +[Powrót do ustawień predefiniowanych](./#plain-text-symbols) ## Ustawienia Plain Text Symbols @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/pl-PL/presets/pure-preset.md b/docs/pl-PL/presets/pure-preset.md index db912880..53207ae5 100644 --- a/docs/pl-PL/presets/pure-preset.md +++ b/docs/pl-PL/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#pure) +[Powrót do ustawień predefiniowanych](./#pure) # Ustawienia Pure @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/pl-PL/presets/tokyo-night.md b/docs/pl-PL/presets/tokyo-night.md index 82167982..7f513998 100644 --- a/docs/pl-PL/presets/tokyo-night.md +++ b/docs/pl-PL/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Powrót do ustawień predefiniowanych](./README.md#pastel-powerline) +[Powrót do ustawień predefiniowanych](./#pastel-powerline) # Ustawienia Tokyo Night @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Kliknij, aby pobrać TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/presets/bracketed-segments.md b/docs/presets/bracketed-segments.md index ebfb966d..c35908f2 100644 --- a/docs/presets/bracketed-segments.md +++ b/docs/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -15,4 +15,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/presets/gruvbox-rainbow.md b/docs/presets/gruvbox-rainbow.md index 7e2db717..37ca1373 100644 --- a/docs/presets/gruvbox-rainbow.md +++ b/docs/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/presets/jetpack.md b/docs/presets/jetpack.md index 0f52a9a9..c247b97f 100644 --- a/docs/presets/jetpack.md +++ b/docs/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/presets/nerd-font.md b/docs/presets/nerd-font.md index 26472871..131f21c4 100644 --- a/docs/presets/nerd-font.md +++ b/docs/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/presets/no-empty-icons.md b/docs/presets/no-empty-icons.md index aa4a211f..2d262cdd 100644 --- a/docs/presets/no-empty-icons.md +++ b/docs/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/presets/no-nerd-font.md b/docs/presets/no-nerd-font.md index 2d20b0d4..db821358 100644 --- a/docs/presets/no-nerd-font.md +++ b/docs/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -17,4 +17,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/presets/no-runtimes.md b/docs/presets/no-runtimes.md index c0805d11..218d1ae1 100644 --- a/docs/presets/no-runtimes.md +++ b/docs/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/presets/pastel-powerline.md b/docs/presets/pastel-powerline.md index 9a54bf23..34877542 100644 --- a/docs/presets/pastel-powerline.md +++ b/docs/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -19,4 +19,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/presets/plain-text.md b/docs/presets/plain-text.md index 82d77ab9..63fa98d0 100644 --- a/docs/presets/plain-text.md +++ b/docs/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -15,4 +15,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/presets/pure-preset.md b/docs/presets/pure-preset.md index b75a0056..68b7b49d 100644 --- a/docs/presets/pure-preset.md +++ b/docs/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/presets/tokyo-night.md b/docs/presets/tokyo-night.md index 1bfa22ce..7897c8e8 100644 --- a/docs/presets/tokyo-night.md +++ b/docs/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/pt-BR/README.md b/docs/pt-BR/README.md index cf2e696b..ec8274a0 100644 --- a/docs/pt-BR/README.md +++ b/docs/pt-BR/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: O prompt minimalista, extremamente rápido e infinitamente personalizável para qualquer shell! -actionText: Primeiros passos → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: O prompt minimalista, extremamente rápido e infinitamente personalizável para qualquer shell! + actions: + - theme: brand + text: Primeiros passos → + link: ./guide/ features: - - + - title: Compatibilidade primeiro details: Funciona nos principais shells nos principais sistemas operacionais. Use em qualquer lugar! - - + - title: Poder do Rust details: Tenha o melhor da velocidade e segurança do Rust, para tornar seu prompt o mais rápido e confiável possível. - - + - title: Personalizável details: Cada pequeno detalhe é personalizável ao seu gosto, para tornar esse prompt o mínimo possível ou rico em recursos, como você preferir. footer: Licenciado pelo ISC | Todos os direitos reservados © 2019-Presente | Contribuidores Starship diff --git a/docs/pt-BR/advanced-config/README.md b/docs/pt-BR/advanced-config/README.md index a8b75558..ea6fabd2 100644 --- a/docs/pt-BR/advanced-config/README.md +++ b/docs/pt-BR/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Alguns shells suportam um prompt direito que é renderizado na mesma linha que a entrada. Starship pode definir o conteúdo do prompt correto usando a opção `right_format`. Qualquer módulo que pode ser usado no `format` também é compatível com `right_format`. A variável `$all` conterá apenas módulos não usado explicitamente em `format` ou `right_format`. -Nota: O prompt direito é uma única linha após o local de entrada. Para alinhar módulos à direita acima da linha de entrada em um prompt de várias linhas, consulte o [módulo `fill`](/config/#fill). +Nota: O prompt direito é uma única linha após o local de entrada. Para alinhar módulos à direita acima da linha de entrada em um prompt de várias linhas, consulte o [módulo `fill`](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/pt-BR/config/README.md b/docs/pt-BR/config/README.md index 5c13cf0f..8f6a9ffd 100644 --- a/docs/pt-BR/config/README.md +++ b/docs/pt-BR/config/README.md @@ -106,7 +106,7 @@ format = ''' \$''' -# com string básica multilinha +# com string básica multilinha format = """ \\$""" @@ -158,7 +158,7 @@ Por exemplo: #### Estilo dos textos -A maioria dos módulos no starship permite que você configure seus estilos de exibição. Isso é feito com uma entrada (normalmente chamada de `estilo`) que é uma string especificando a configuração. Aqui estão alguns exemplos de strings de estilo junto com o que elas fazem. Para obter detalhes sobre a sintaxe completa, consulte o [guia de configuração avançada](/advanced-config/). +A maioria dos módulos no starship permite que você configure seus estilos de exibição. Isso é feito com uma entrada (normalmente chamada de `estilo`) que é uma string especificando a configuração. Aqui estão alguns exemplos de strings de estilo junto com o que elas fazem. Para obter detalhes sobre a sintaxe completa, consulte o [guia de configuração avançada](../advanced-config/). - `"fg:green bg:blue"` define o texto para verde e o fundo azul - `"bg:blue fg:bright-green"` define o texto para verde brilhante e o fundo azul @@ -200,12 +200,12 @@ Esta é a lista de opções de configuração em todo o prompt. | Opções | Padrão | Descrição | | ----------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configura o formato do prompt. | -| `right_format` | `''` | Veja [Ativa o prompt direito](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | Veja [Ativa o prompt direito](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Tempo limite para escanear arquivos (em milissegundos). | | `command_timeout` | `500` | Tempo limite de execução de comandos pelo starship (em milissegundos). | | `add_newline` | `true` | Insere linha vazia entre os prompts do shell. | | `palette` | `''` | Define qual a paleta de cores de `palettes` será usada. | -| `palettes` | `{}` | Coleção de paletas de cores que atribuem [cores](/advanced-config/#style-strings) aos nomes definidos pelo usuário. Note que paletas de cores não podem referir-se a suas próprias definições de cores. | +| `palettes` | `{}` | Coleção de paletas de cores que atribuem [cores](../advanced-config/#style-strings) aos nomes definidos pelo usuário. Note que paletas de cores não podem referir-se a suas próprias definições de cores. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/pt-BR/faq/README.md b/docs/pt-BR/faq/README.md index c445f797..3fb3a62c 100644 --- a/docs/pt-BR/faq/README.md +++ b/docs/pt-BR/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Porque eu vejo alertas de `Executing command "..." timed out.`? -O Starship executa comandos diferentes para recuperar as informações para exibir no prompt, por exemplo a versão de um programa ou o status atual do git. Para ter certeza de que o starship não travou durante uma execução destes comandos nos definimos um limite de tempo, se um comando ultrapassar este limite o starship vai parar a execução do comando e exibe o alerta acima, esse é um comportamento esperado. Este limite de tempo é configurado usando o [`command_timeout`key](/config/#prompt) então se você quiser você pode aumentar este limite. Você pode também seguir os passos para debugar para ver qual comando esta demorando e se você pode otimizar ele. Finalmente você pode definir a variável de ambiente `STARSHIP_LOG` para `error` para esconder estes alertas. +O Starship executa comandos diferentes para recuperar as informações para exibir no prompt, por exemplo a versão de um programa ou o status atual do git. Para ter certeza de que o starship não travou durante uma execução destes comandos nos definimos um limite de tempo, se um comando ultrapassar este limite o starship vai parar a execução do comando e exibe o alerta acima, esse é um comportamento esperado. Este limite de tempo é configurado usando o [`command_timeout`key](../config/#prompt) então se você quiser você pode aumentar este limite. Você pode também seguir os passos para debugar para ver qual comando esta demorando e se você pode otimizar ele. Finalmente você pode definir a variável de ambiente `STARSHIP_LOG` para `error` para esconder estes alertas. ## Eu vejo símbolos que não entendo ou não esperado, o que isso significa? diff --git a/docs/pt-BR/guide/README.md b/docs/pt-BR/guide/README.md index f13eb380..2113c713 100644 --- a/docs/pt-BR/guide/README.md +++ b/docs/pt-BR/guide/README.md @@ -40,11 +40,11 @@

- Site + Site · Instalação · - Configuração + Configuração

@@ -171,7 +171,7 @@ - **Fácil:**Instalação rápida – comece a usar em minutos.

-Consulte a documentação  ▶ +Consulte a documentação  ▶

diff --git a/docs/pt-BR/installing/README.md b/docs/pt-BR/installing/README.md index 6479e13c..8decd90d 100644 --- a/docs/pt-BR/installing/README.md +++ b/docs/pt-BR/installing/README.md @@ -5,7 +5,7 @@ Para instalar o starship, você precisa de duas coisas: 1. O binário do **Starship** em seu computador 1. Altere seu shell para usar o binário do starship como seu prompt alterando os scripts init -Para a maioria dos usuários as instruções na [pagina principal](/guide/#🚀-installation) irá funcionar perfeitamente. No entanto para algumas plataformas mais especificas, instruções diferentes são necessárias. +Para a maioria dos usuários as instruções na [pagina principal](../guide/#🚀-installation) irá funcionar perfeitamente. No entanto para algumas plataformas mais especificas, instruções diferentes são necessárias. Existem tantas plataformas que elas não cabem no arquivo README.md principal, então aqui estão algumas instruções de instalação para outras plataformas da comunidade. A sua não está aqui? Por favor, adicione-o aqui se você descobrir! diff --git a/docs/pt-BR/presets/bracketed-segments.md b/docs/pt-BR/presets/bracketed-segments.md index 42929c06..89d14731 100644 --- a/docs/pt-BR/presets/bracketed-segments.md +++ b/docs/pt-BR/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#bracketed-segments) +[Retornar para Personalizações](./#bracketed-segments) # Predefinições entre colchetes @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/pt-BR/presets/gruvbox-rainbow.md b/docs/pt-BR/presets/gruvbox-rainbow.md index 588b5c3a..f30cbc2a 100644 --- a/docs/pt-BR/presets/gruvbox-rainbow.md +++ b/docs/pt-BR/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#gruvbox-rainbow) +[Retornar para Personalizações](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/pt-BR/presets/jetpack.md b/docs/pt-BR/presets/jetpack.md index 339ab8c8..9496e9ad 100644 --- a/docs/pt-BR/presets/jetpack.md +++ b/docs/pt-BR/presets/jetpack.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#jetpack) +[Retornar para Personalizações](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/pt-BR/presets/nerd-font.md b/docs/pt-BR/presets/nerd-font.md index 4218422a..6e8781bd 100644 --- a/docs/pt-BR/presets/nerd-font.md +++ b/docs/pt-BR/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#nerd-font-symbols) +[Retornar para Personalizações](./#nerd-font-symbols) # Símbolos Nerd Font @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/pt-BR/presets/no-empty-icons.md b/docs/pt-BR/presets/no-empty-icons.md index 8ad1409f..137e7ccb 100644 --- a/docs/pt-BR/presets/no-empty-icons.md +++ b/docs/pt-BR/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#no-empty-icons) +[Retornar para Personalizações](./#no-empty-icons) # Predefinição Nenhum Ícones Vazios @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/pt-BR/presets/no-nerd-font.md b/docs/pt-BR/presets/no-nerd-font.md index de56e1b0..a8d01d64 100644 --- a/docs/pt-BR/presets/no-nerd-font.md +++ b/docs/pt-BR/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#no-nerd-fonts) +[Retornar para Personalizações](./#no-nerd-fonts) # Predefinição sem Nerd Fonts @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/pt-BR/presets/no-runtimes.md b/docs/pt-BR/presets/no-runtimes.md index 81529130..e556eb61 100644 --- a/docs/pt-BR/presets/no-runtimes.md +++ b/docs/pt-BR/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Retornar para Predefinições](./README.md#no-runtime-versions) +[Retornar para Predefinições](./#no-runtime-versions) # Remover versão do runtime @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/pt-BR/presets/pastel-powerline.md b/docs/pt-BR/presets/pastel-powerline.md index 8990d715..8ce14f37 100644 --- a/docs/pt-BR/presets/pastel-powerline.md +++ b/docs/pt-BR/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#pastel-powerline) +[Retornar para Personalizações](./#pastel-powerline) # Pastel Powerline @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/pt-BR/presets/plain-text.md b/docs/pt-BR/presets/plain-text.md index 77446909..66497101 100644 --- a/docs/pt-BR/presets/plain-text.md +++ b/docs/pt-BR/presets/plain-text.md @@ -1,4 +1,4 @@ -[Retornar para Predefinições](./README.md#plain-text-symbols) +[Retornar para Predefinições](./#plain-text-symbols) ## Personalização de símbolos de texto simples @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/pt-BR/presets/pure-preset.md b/docs/pt-BR/presets/pure-preset.md index 2e2cc1d9..c78cefcc 100644 --- a/docs/pt-BR/presets/pure-preset.md +++ b/docs/pt-BR/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#pure) +[Retornar para Personalizações](./#pure) # Personalização do prompt do terminal com Pure @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/pt-BR/presets/tokyo-night.md b/docs/pt-BR/presets/tokyo-night.md index 3d213e8c..b29051c3 100644 --- a/docs/pt-BR/presets/tokyo-night.md +++ b/docs/pt-BR/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Retornar para Personalizações](./README.md#pastel-powerline) +[Retornar para Personalizações](./#pastel-powerline) # Predifinição Tokyo Night @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Clique para baixar o TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/pt-PT/README.md b/docs/pt-PT/README.md index b0e7e377..5e34dbae 100644 --- a/docs/pt-PT/README.md +++ b/docs/pt-PT/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell! -actionText: Get Started → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell! + actions: + - theme: brand + text: Get Started → + link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/pt-PT/advanced-config/README.md b/docs/pt-PT/advanced-config/README.md index 2e6c8aa0..385ba21c 100644 --- a/docs/pt-PT/advanced-config/README.md +++ b/docs/pt-PT/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/pt-PT/config/README.md b/docs/pt-PT/config/README.md index 1619411e..328ab8c4 100644 --- a/docs/pt-PT/config/README.md +++ b/docs/pt-PT/config/README.md @@ -158,7 +158,7 @@ For example: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/pt-PT/faq/README.md b/docs/pt-PT/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/pt-PT/faq/README.md +++ b/docs/pt-PT/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/pt-PT/guide/README.md b/docs/pt-PT/guide/README.md index 26c72554..f567beea 100644 --- a/docs/pt-PT/guide/README.md +++ b/docs/pt-PT/guide/README.md @@ -40,11 +40,11 @@

- Website + Website · Installation · - Configuration + Configuration

@@ -171,7 +171,7 @@ - **Easy:** quick to install – start using it in minutes.

-Explore the Starship docs  ▶ +Explore the Starship docs  ▶

diff --git a/docs/pt-PT/installing/README.md b/docs/pt-PT/installing/README.md index 0ae67ad1..9b835f5a 100644 --- a/docs/pt-PT/installing/README.md +++ b/docs/pt-PT/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/pt-PT/presets/bracketed-segments.md b/docs/pt-PT/presets/bracketed-segments.md index 982afb20..579d789e 100644 --- a/docs/pt-PT/presets/bracketed-segments.md +++ b/docs/pt-PT/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/pt-PT/presets/gruvbox-rainbow.md b/docs/pt-PT/presets/gruvbox-rainbow.md index 7e2db717..37ca1373 100644 --- a/docs/pt-PT/presets/gruvbox-rainbow.md +++ b/docs/pt-PT/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/pt-PT/presets/jetpack.md b/docs/pt-PT/presets/jetpack.md index 0f52a9a9..c247b97f 100644 --- a/docs/pt-PT/presets/jetpack.md +++ b/docs/pt-PT/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/pt-PT/presets/nerd-font.md b/docs/pt-PT/presets/nerd-font.md index 26472871..131f21c4 100644 --- a/docs/pt-PT/presets/nerd-font.md +++ b/docs/pt-PT/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/pt-PT/presets/no-empty-icons.md b/docs/pt-PT/presets/no-empty-icons.md index aa4a211f..2d262cdd 100644 --- a/docs/pt-PT/presets/no-empty-icons.md +++ b/docs/pt-PT/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/pt-PT/presets/no-nerd-font.md b/docs/pt-PT/presets/no-nerd-font.md index a70e85e7..c3fb3636 100644 --- a/docs/pt-PT/presets/no-nerd-font.md +++ b/docs/pt-PT/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/pt-PT/presets/no-runtimes.md b/docs/pt-PT/presets/no-runtimes.md index c0805d11..218d1ae1 100644 --- a/docs/pt-PT/presets/no-runtimes.md +++ b/docs/pt-PT/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/pt-PT/presets/pastel-powerline.md b/docs/pt-PT/presets/pastel-powerline.md index 8ef2225d..1feb9e1a 100644 --- a/docs/pt-PT/presets/pastel-powerline.md +++ b/docs/pt-PT/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/pt-PT/presets/plain-text.md b/docs/pt-PT/presets/plain-text.md index 1e17b4bc..2a075171 100644 --- a/docs/pt-PT/presets/plain-text.md +++ b/docs/pt-PT/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/pt-PT/presets/pure-preset.md b/docs/pt-PT/presets/pure-preset.md index b75a0056..68b7b49d 100644 --- a/docs/pt-PT/presets/pure-preset.md +++ b/docs/pt-PT/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/pt-PT/presets/tokyo-night.md b/docs/pt-PT/presets/tokyo-night.md index 1bfa22ce..7897c8e8 100644 --- a/docs/pt-PT/presets/tokyo-night.md +++ b/docs/pt-PT/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/.vuepress/public/_redirects b/docs/public/_redirects similarity index 100% rename from docs/.vuepress/public/_redirects rename to docs/public/_redirects diff --git a/docs/public/config-schema.json b/docs/public/config-schema.json new file mode 120000 index 00000000..87f0baf4 --- /dev/null +++ b/docs/public/config-schema.json @@ -0,0 +1 @@ +../../.github/config-schema.json \ No newline at end of file diff --git a/docs/.vuepress/public/demo.mp4 b/docs/public/demo.mp4 similarity index 100% rename from docs/.vuepress/public/demo.mp4 rename to docs/public/demo.mp4 diff --git a/docs/.vuepress/public/demo.webm b/docs/public/demo.webm similarity index 100% rename from docs/.vuepress/public/demo.webm rename to docs/public/demo.webm diff --git a/docs/public/icon.png b/docs/public/icon.png new file mode 120000 index 00000000..5c758a44 --- /dev/null +++ b/docs/public/icon.png @@ -0,0 +1 @@ +../../media/icon.png \ No newline at end of file diff --git a/docs/public/install.sh b/docs/public/install.sh new file mode 120000 index 00000000..6883b17d --- /dev/null +++ b/docs/public/install.sh @@ -0,0 +1 @@ +../../install/install.sh \ No newline at end of file diff --git a/docs/public/logo.png b/docs/public/logo.png new file mode 120000 index 00000000..0464c5fe --- /dev/null +++ b/docs/public/logo.png @@ -0,0 +1 @@ +../../media/logo.png \ No newline at end of file diff --git a/docs/public/logo.svg b/docs/public/logo.svg new file mode 120000 index 00000000..b8ab4a2a --- /dev/null +++ b/docs/public/logo.svg @@ -0,0 +1 @@ +../../media/logo.svg \ No newline at end of file diff --git a/docs/public/nerd-font.woff2 b/docs/public/nerd-font.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..267d58913ac3c182aab570aebf79ef8227c17789 GIT binary patch literal 862124 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

-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

ns#Tu%2~9YqS^SC-Fj2%H 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�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

SE}-hWH>InaB?iL0sz60(Ow@l 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%0AOxG@JgP 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�ck4x|J_BHZymlZqO1yRzXuvEp@x@H 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

    *6N3jiPd*?XMrMJo_Q~|<6`U_;mpTsIx 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

    - Сайт + Сайт · Установка · - Конфигурация + Конфигурация

    @@ -171,7 +171,7 @@ - **Легкая:** быстрая установка - начните использовать ее в считанные минуты.

    -Изучите документацию Starship  ▶ +Изучите документацию Starship  ▶

    diff --git a/docs/ru-RU/installing/README.md b/docs/ru-RU/installing/README.md index 3c5aeaa5..5fbdb6dd 100644 --- a/docs/ru-RU/installing/README.md +++ b/docs/ru-RU/installing/README.md @@ -5,7 +5,7 @@ To install starship, you need to do two things: 1. Get the **starship** binary onto your computer 1. Tell your shell to use the starship binary as its prompt by modifying its init scripts -For most users, the instructions on [the main page](/guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/ru-RU/presets/bracketed-segments.md b/docs/ru-RU/presets/bracketed-segments.md index 37737aa7..f1203497 100644 --- a/docs/ru-RU/presets/bracketed-segments.md +++ b/docs/ru-RU/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#bracketed-segments) +[Вернуться к пресетам](./#bracketed-segments) # Пресет Bracketed Segments @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/ru-RU/presets/gruvbox-rainbow.md b/docs/ru-RU/presets/gruvbox-rainbow.md index b60d31d6..7a34d430 100644 --- a/docs/ru-RU/presets/gruvbox-rainbow.md +++ b/docs/ru-RU/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#gruvbox-rainbow) +[Вернуться к пресетам](./#gruvbox-rainbow) # Пресет Gruvbox Rainbow @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/ru-RU/presets/jetpack.md b/docs/ru-RU/presets/jetpack.md index 5fc4fa80..321ac6e8 100644 --- a/docs/ru-RU/presets/jetpack.md +++ b/docs/ru-RU/presets/jetpack.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#jetpack) +[Вернуться к пресетам](./#jetpack) # Пресет Jetpack @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/ru-RU/presets/nerd-font.md b/docs/ru-RU/presets/nerd-font.md index 956eee3f..021c9b20 100644 --- a/docs/ru-RU/presets/nerd-font.md +++ b/docs/ru-RU/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#nerd-font-symbols) +[Вернуться к пресетам](./#nerd-font-symbols) # Пресет Nerd Font Symbols @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/ru-RU/presets/no-empty-icons.md b/docs/ru-RU/presets/no-empty-icons.md index 66b00ce9..bfb354ac 100644 --- a/docs/ru-RU/presets/no-empty-icons.md +++ b/docs/ru-RU/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#no-empty-icons) +[Вернуться к пресетам](./#no-empty-icons) # Пресет No Empty Icons @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/ru-RU/presets/no-nerd-font.md b/docs/ru-RU/presets/no-nerd-font.md index d0909711..80d30114 100644 --- a/docs/ru-RU/presets/no-nerd-font.md +++ b/docs/ru-RU/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#no-nerd-fonts) +[Вернуться к пресетам](./#no-nerd-fonts) # Пресет No Nerd Fonts @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/ru-RU/presets/no-runtimes.md b/docs/ru-RU/presets/no-runtimes.md index 5d35fda2..f0e9a664 100644 --- a/docs/ru-RU/presets/no-runtimes.md +++ b/docs/ru-RU/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#no-runtime-versions) +[Вернуться к пресетам](./#no-runtime-versions) # Пресет No Runtime Versions @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/ru-RU/presets/pastel-powerline.md b/docs/ru-RU/presets/pastel-powerline.md index cb4b13e4..c7f10a62 100644 --- a/docs/ru-RU/presets/pastel-powerline.md +++ b/docs/ru-RU/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#pastel-powerline) +[Вернуться к пресетам](./#pastel-powerline) # Пресет Pastel Powerline @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/ru-RU/presets/plain-text.md b/docs/ru-RU/presets/plain-text.md index ff106c34..f1a86ee3 100644 --- a/docs/ru-RU/presets/plain-text.md +++ b/docs/ru-RU/presets/plain-text.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#plain-text-symbols) +[Вернуться к пресетам](./#plain-text-symbols) ## Пресет Plain Text Symbols @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/ru-RU/presets/pure-preset.md b/docs/ru-RU/presets/pure-preset.md index 9d9ddf5d..044d1cd3 100644 --- a/docs/ru-RU/presets/pure-preset.md +++ b/docs/ru-RU/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#pure) +[Вернуться к пресетам](./#pure) # Пресет Pure @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/ru-RU/presets/tokyo-night.md b/docs/ru-RU/presets/tokyo-night.md index ba0c0fb5..5af21c00 100644 --- a/docs/ru-RU/presets/tokyo-night.md +++ b/docs/ru-RU/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Вернуться к пресетам](./README.md#pastel-powerline) +[Вернуться к пресетам](./#pastel-powerline) # Пресет Tokyo Night @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Нажмите, чтобы загрузить TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/tr-TR/README.md b/docs/tr-TR/README.md index bb5441a2..6eeb9c5f 100644 --- a/docs/tr-TR/README.md +++ b/docs/tr-TR/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Sade, hızlı, dilediğiniz gibi özelleştirilebilen ve istenilen shell'de kullanılabilen prompt! -actionText: Kullanmaya Başlayın → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Sade, hızlı, dilediğiniz gibi özelleştirilebilen ve istenilen shell'de kullanılabilen prompt! + actions: + - theme: brand + text: Kullanmaya Başlayın → + link: ./guide/ features: - - + - title: Önce Uyumluluk details: En yaygın işletim sistemlerindeki en yaygın shell'ler üzerinde çalışır. Use it everywhere! - - + - title: Rust-Powered details: Prompt'u mümkün olduğunca hızlı ve güvenilir hale getirmek için sınıfının en iyisi Rust hızını ve güvenliğini sağlar. - - + - title: Özelleştirilebilir details: Her küçük ayrıntı beğeninize göre özelleştirilebilir, böylece bu prompt'u istediğiniz kadar minimal veya zengin özelliklere sahip hale getirirsiniz. footer: ISC Lisanslı | Telif Hakkı © 2019-günümüz Starship Contributors diff --git a/docs/tr-TR/advanced-config/README.md b/docs/tr-TR/advanced-config/README.md index 698071fd..2a616245 100644 --- a/docs/tr-TR/advanced-config/README.md +++ b/docs/tr-TR/advanced-config/README.md @@ -137,7 +137,7 @@ echo "🚀" starship_precmd_user_func="fırlatıldı" ``` -- Özel bir işlemi başlatmadan hemen önce komut istemini çalıştırıp, [`DEBUG`filtreleme mekanizmasını](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/) kullanabilirsiniz. Bununla birlikte, Starship başlatılmadan hemen _önce_, DEBUG sinyalini filtrelemek<1>**zorundasınız.! Starship, DEBUG filtrelemesinin ardından bazı değerleri içerisinde barındırabilir ancak filtreleme işlemi starship başlatıldıktan sonra yazılırsa bazı fonksiyonlar devre dışı kalabilir. +- Özel bir işlemi başlatmadan hemen önce komut istemini çalıştırıp, [`DEBUG`filtreleme mekanizmasını](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/) kullanabilirsiniz. Bununla birlikte, Starship başlatılmadan hemen _önce_, DEBUG sinyalini filtrelemek **zorundasınız**! Starship, DEBUG filtrelemesinin ardından bazı değerleri içerisinde barındırabilir ancak filtreleme işlemi starship başlatıldıktan sonra yazılırsa bazı fonksiyonlar devre dışı kalabilir. ```bash function blastoff(){ @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/tr-TR/config/README.md b/docs/tr-TR/config/README.md index a0223f27..96c40ec3 100644 --- a/docs/tr-TR/config/README.md +++ b/docs/tr-TR/config/README.md @@ -158,7 +158,7 @@ For example: #### Style Strings -Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](/advanced-config/). +Most modules in starship allow you to configure their display styles. This is done with an entry (usually called `style`) which is a string specifying the configuration. Here are some examples of style strings along with what they do. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ This is the list of prompt-wide configuration options. | Option | Default | Description | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/tr-TR/faq/README.md b/docs/tr-TR/faq/README.md index 1f848440..8fba59ca 100644 --- a/docs/tr-TR/faq/README.md +++ b/docs/tr-TR/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## I see symbols I don't understand or expect, what do they mean? diff --git a/docs/tr-TR/guide/README.md b/docs/tr-TR/guide/README.md index f7ddcd9d..7f639186 100644 --- a/docs/tr-TR/guide/README.md +++ b/docs/tr-TR/guide/README.md @@ -40,11 +40,11 @@

    - Website + Website · Kurulum · - Yapılandırma + Yapılandırma

    @@ -171,7 +171,7 @@ - **Kolay:** hızlı kurulum -  dakikalar içinde kullanmaya başla.

    -Starship dokümantasyonunu incele   ▶ +Starship dokümantasyonunu incele   ▶

    diff --git a/docs/tr-TR/installing/README.md b/docs/tr-TR/installing/README.md index e75d921f..bd3be65e 100644 --- a/docs/tr-TR/installing/README.md +++ b/docs/tr-TR/installing/README.md @@ -5,7 +5,7 @@ Starship'i kurmak için, 2 şeye ihtiyacınız var: 1. **Starship** binary dosyalarını bilgisayarınıza alın 1. Kabuğunuza Starship binary scriptini kullanmasını söyleyin -Çoğu kullanıcı için, [ana sayfadaki](/guide/#🚀-installation) talimatlar gayet iyi çalışacaktır. Fakat, bazı özel platformlar için, farklı talimatlara ihtiyaç vardır. +Çoğu kullanıcı için, [ana sayfadaki](../guide/#🚀-installation) talimatlar gayet iyi çalışacaktır. Fakat, bazı özel platformlar için, farklı talimatlara ihtiyaç vardır. Birçok platform var ki ana sisteme uymuyorlar. README.md belgesi ile diğer platformlar için bazı kurulum talimatları. Seninki burada değil mi? Anlarsan lütfen buraya ekle! diff --git a/docs/tr-TR/presets/bracketed-segments.md b/docs/tr-TR/presets/bracketed-segments.md index b7bc1a84..bfbee2d4 100644 --- a/docs/tr-TR/presets/bracketed-segments.md +++ b/docs/tr-TR/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/tr-TR/presets/gruvbox-rainbow.md b/docs/tr-TR/presets/gruvbox-rainbow.md index 73c65357..bff50ffe 100644 --- a/docs/tr-TR/presets/gruvbox-rainbow.md +++ b/docs/tr-TR/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/tr-TR/presets/jetpack.md b/docs/tr-TR/presets/jetpack.md index ed7cbbbd..131daff8 100644 --- a/docs/tr-TR/presets/jetpack.md +++ b/docs/tr-TR/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/tr-TR/presets/nerd-font.md b/docs/tr-TR/presets/nerd-font.md index a1e754ad..ba0fbc1d 100644 --- a/docs/tr-TR/presets/nerd-font.md +++ b/docs/tr-TR/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/tr-TR/presets/no-empty-icons.md b/docs/tr-TR/presets/no-empty-icons.md index bff1d3ea..69e4f152 100644 --- a/docs/tr-TR/presets/no-empty-icons.md +++ b/docs/tr-TR/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/tr-TR/presets/no-nerd-font.md b/docs/tr-TR/presets/no-nerd-font.md index 7be52470..fd54855b 100644 --- a/docs/tr-TR/presets/no-nerd-font.md +++ b/docs/tr-TR/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/tr-TR/presets/no-runtimes.md b/docs/tr-TR/presets/no-runtimes.md index 33f5c2ff..a8d96386 100644 --- a/docs/tr-TR/presets/no-runtimes.md +++ b/docs/tr-TR/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/tr-TR/presets/pastel-powerline.md b/docs/tr-TR/presets/pastel-powerline.md index ca705b00..c14441f5 100644 --- a/docs/tr-TR/presets/pastel-powerline.md +++ b/docs/tr-TR/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/tr-TR/presets/plain-text.md b/docs/tr-TR/presets/plain-text.md index 17f8695e..de41e9f3 100644 --- a/docs/tr-TR/presets/plain-text.md +++ b/docs/tr-TR/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/tr-TR/presets/pure-preset.md b/docs/tr-TR/presets/pure-preset.md index 15108616..5fd6819d 100644 --- a/docs/tr-TR/presets/pure-preset.md +++ b/docs/tr-TR/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/tr-TR/presets/tokyo-night.md b/docs/tr-TR/presets/tokyo-night.md index 09aad309..d28d6412 100644 --- a/docs/tr-TR/presets/tokyo-night.md +++ b/docs/tr-TR/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/uk-UA/README.md b/docs/uk-UA/README.md index a2233193..c654da98 100644 --- a/docs/uk-UA/README.md +++ b/docs/uk-UA/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки! -actionText: Початок роботи → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки! + actions: + - theme: brand + text: Початок роботи → + link: ./guide/ features: - - + - title: Сумісність на першому місці details: Працює з більшістю оболонок у всіх популярних операційних системах. Можна використовувати будь-де! - - + - title: Rust під капотом details: Використовує найкращу в класі швидкість та безпеку застосунків створених за допомогою Rust, що робить ваш командний рядок швидким та надійним. - - + - title: Персоналізація details: Кожна дрібничка налаштовується відповідно до ваших потреб, щоб зробити командний рядок аскетичним чи багатофункціональним, таким, яким ви б хотіли б його бачити. footer: Ліцензія ISC | Авторське право © 2019-по сьогодні Учасники Starship diff --git a/docs/uk-UA/advanced-config/README.md b/docs/uk-UA/advanced-config/README.md index 457c68f3..a1e385e5 100644 --- a/docs/uk-UA/advanced-config/README.md +++ b/docs/uk-UA/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Деякі оболонки підтримують вивід командного рядка праворуч. Starship може встановити вміст правої частини командного рядка за допомогою параметра `right_format`. Будь-який модуль, який можна використовувати у `format`, також підтримується у `right_format`. Змінна `$all` міститиме лише модулі, які явно не використовується, а ні в `format`, а ні в `right_format`. -Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте модуль [`fill`](/config/#fill). +Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте модуль [`fill`](../config/#fill). `right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/uk-UA/config/README.md b/docs/uk-UA/config/README.md index 0d965192..480aa197 100644 --- a/docs/uk-UA/config/README.md +++ b/docs/uk-UA/config/README.md @@ -158,7 +158,7 @@ line2 #### Рядки стилів -Більшість модулів в starship дозволяють вам налаштовувати стилі їх виводу. Це робиться за допомогою запису (зазвичай `style`), який є рядком, що вказує на конфігурацію. Ось деякі приклади стилів поряд з тим, що вони роблять. За деталями щодо повного синтаксису зверніться до [Довідника з розширеного налаштування](/advanced-config/). +Більшість модулів в starship дозволяють вам налаштовувати стилі їх виводу. Це робиться за допомогою запису (зазвичай `style`), який є рядком, що вказує на конфігурацію. Ось деякі приклади стилів поряд з тим, що вони роблять. За деталями щодо повного синтаксису зверніться до [Довідника з розширеного налаштування](../advanced-config/). - `'fg:green bg:blue'` – зелений текст на блакитному фоні - `'bg:blue fg:bright-green'` – яскраво зелений текст на блакитному фоні @@ -200,12 +200,12 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | Параметр | Стандартно | Опис | | ----------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Налаштовує формат командного рядка. | -| `right_format` | `''` | Див [Увімкнути командний рядок праворуч](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | Див [Увімкнути командний рядок праворуч](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Тайм-аут для сканування файлів (у мілісекундах). | | `command_timeout` | `500` | Тайм-аут для команд, виконаних starship (у мілісекундах). | | `add_newline` | `true` | Вставити порожній рядок між командними рядками в оболонці. | | `palette` | `''` | Встановлює кольорову палітру використовуючи `palettes`. | -| `palettes` | `{}` | Колекція кольорових палітр, для призначення [кольорів](/advanced-config/#style-strings) до назв визначених користувачем. Зверніть увагу, що кольорові палітри не можуть посилатися на їх власні визначення кольору. | +| `palettes` | `{}` | Колекція кольорових палітр, для призначення [кольорів](../advanced-config/#style-strings) до назв визначених користувачем. Зверніть увагу, що кольорові палітри не можуть посилатися на їх власні визначення кольору. | | `follow_symlinks` | `true` | Перевіряти символічні посилання чи вони посилаються на теки; використовується в таких модулях як git. | ::: tip @@ -956,7 +956,7 @@ format = 'via [✨ $version](bold blue) ' ## Daml -Модуль `daml` показує поточну версію SDK <1">Daml, коли ви перебуваєте в кореневій теці проєкту Daml. `sdk-version` у файлі `daml.yaml` буде використовуватись, якщо значення не буде перевизначене змінною оточення `DAML_SDK_VERSION`. Типово, модуль показується, якщо виконується будь-яка з наступних умов: +Модуль `daml` показує поточну версію SDK [Daml](https://www.digitalasset.com/developers), коли ви перебуваєте в кореневій теці проєкту Daml. `sdk-version` у файлі `daml.yaml` буде використовуватись, якщо значення не буде перевизначене змінною оточення `DAML_SDK_VERSION`. Типово, модуль показується, якщо виконується будь-яка з наступних умов: - Поточна тека містить файл `daml.yaml` @@ -1286,7 +1286,7 @@ heuristic = false ## Elixir -Модуль `elixir` показує поточну встановлену версію [Elixir](https://elixir-lang.org/) та <2">Erlang/OTP. Типово, модуль показується, якщо виконується будь-яка з наступних умов: +Модуль `elixir` показує поточну встановлену версію [Elixir](https://elixir-lang.org/) та [Erlang/OTP](https://erlang.org/doc/). Типово, модуль показується, якщо виконується будь-яка з наступних умов: - Поточна тека містить файл `mix.exs`. diff --git a/docs/uk-UA/faq/README.md b/docs/uk-UA/faq/README.md index d3b3d41f..613db64d 100644 --- a/docs/uk-UA/faq/README.md +++ b/docs/uk-UA/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Чому я бачу попередження `Executing command "..." timed out.`? -Starship виконує різні команди, щоб отримати інформацію для показу в командному рядку, наприклад версію програми або поточного статусу git. Щоб переконатися, що starship не підвис, намагаючись виконати ці команди, ми встановлюємо ліміт, якщо виконання команди займе більше часу, starship зупинить виконання команди та видасть попередження, це очікувана поведінка. Цей ліміт часу можна налаштувати за допомогою [ ключа `command_timeout`](/config/#prompt), так що, якщо ви хочете, ви можете збільшити ліміт часу. Ви можете також виконати дії для відлагодження, щоб побачити, яка команда є повільною і подивитися, чи ви можете її оптимізувати. Нарешті ви можете встановити `STARSHIP_LOG` у `error`, щоб приховати ці попередження. +Starship виконує різні команди, щоб отримати інформацію для показу в командному рядку, наприклад версію програми або поточного статусу git. Щоб переконатися, що starship не підвис, намагаючись виконати ці команди, ми встановлюємо ліміт, якщо виконання команди займе більше часу, starship зупинить виконання команди та видасть попередження, це очікувана поведінка. Цей ліміт часу можна налаштувати за допомогою [ ключа `command_timeout`](../config/#prompt), так що, якщо ви хочете, ви можете збільшити ліміт часу. Ви можете також виконати дії для відлагодження, щоб побачити, яка команда є повільною і подивитися, чи ви можете її оптимізувати. Нарешті ви можете встановити `STARSHIP_LOG` у `error`, щоб приховати ці попередження. ## Я бачу якісь символи, але не розумію, що вони значать? diff --git a/docs/uk-UA/guide/README.md b/docs/uk-UA/guide/README.md index 5782ac00..377de794 100644 --- a/docs/uk-UA/guide/README.md +++ b/docs/uk-UA/guide/README.md @@ -40,11 +40,11 @@

    - Вебсайт + Вебсайт · Встановлення · - Налаштування + Налаштування

    @@ -171,7 +171,7 @@ - **Простий:** швидка інсталяція дозволяє почати роботу за лічені хвилини.

    -Ознайомтесь з документацією Starship   ▶ +Ознайомтесь з документацією Starship   ▶

    diff --git a/docs/uk-UA/installing/README.md b/docs/uk-UA/installing/README.md index 315b3482..e8b7c7d8 100644 --- a/docs/uk-UA/installing/README.md +++ b/docs/uk-UA/installing/README.md @@ -5,7 +5,7 @@ 1. Завантажити бінарний файл **starship** на Ваш компʼютер 1. Вказати у вашій оболонці, що ви бажаєте використовувати бінарний файл starship у вигляді командного рядка, змінивши скрипти ініціалізації -Для більшості користувачів чудово підійдуть інструкції на [головній сторінці](/guide/#🚀-installation). Однак, для деяких більш спеціалізованих платформ потрібні інші інструкції. +Для більшості користувачів чудово підійдуть інструкції на [головній сторінці](../guide/#🚀-installation). Однак, для деяких більш спеціалізованих платформ потрібні інші інструкції. Існує так багато платформ, що вони не вписуються в основний файл README.md, тож ось деякі інструкції зі встановлення від спільноти для інших платформ. Вашої тут немає? Будь ласка, додайте її сюди, якщо дізнаєтесь! diff --git a/docs/uk-UA/presets/bracketed-segments.md b/docs/uk-UA/presets/bracketed-segments.md index 946adce5..6ebb13b0 100644 --- a/docs/uk-UA/presets/bracketed-segments.md +++ b/docs/uk-UA/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#bracketed-segments) +[Повернутися до Шаблонів](./#bracketed-segments) # Bracketed Segments @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/uk-UA/presets/gruvbox-rainbow.md b/docs/uk-UA/presets/gruvbox-rainbow.md index b6272ae5..3e74c354 100644 --- a/docs/uk-UA/presets/gruvbox-rainbow.md +++ b/docs/uk-UA/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#gruvbox-rainbow) +[Повернутися до Шаблонів](./#gruvbox-rainbow) # Шаблон Gruvbox Rainbow @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/uk-UA/presets/jetpack.md b/docs/uk-UA/presets/jetpack.md index be6565d3..230c27da 100644 --- a/docs/uk-UA/presets/jetpack.md +++ b/docs/uk-UA/presets/jetpack.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#jetpack) +[Повернутися до Шаблонів](./#jetpack) # Jetpack @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/uk-UA/presets/nerd-font.md b/docs/uk-UA/presets/nerd-font.md index 7158cb98..2693d35c 100644 --- a/docs/uk-UA/presets/nerd-font.md +++ b/docs/uk-UA/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#nerd-font-symbols) +[Повернутися до Шаблонів](./#nerd-font-symbols) # Nerd Font Symbols @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/uk-UA/presets/no-empty-icons.md b/docs/uk-UA/presets/no-empty-icons.md index 7751a9bd..b3982b9d 100644 --- a/docs/uk-UA/presets/no-empty-icons.md +++ b/docs/uk-UA/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#no-empty-icons) +[Повернутися до Шаблонів](./#no-empty-icons) # No Empty Icons @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/uk-UA/presets/no-nerd-font.md b/docs/uk-UA/presets/no-nerd-font.md index 42e5ceb8..72e6eac1 100644 --- a/docs/uk-UA/presets/no-nerd-font.md +++ b/docs/uk-UA/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#no-nerd-fonts) +[Повернутися до Шаблонів](./#no-nerd-fonts) # No Nerd Fonts @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/uk-UA/presets/no-runtimes.md b/docs/uk-UA/presets/no-runtimes.md index ad46ba35..c60560b1 100644 --- a/docs/uk-UA/presets/no-runtimes.md +++ b/docs/uk-UA/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#no-runtime-versions) +[Повернутися до Шаблонів](./#no-runtime-versions) # No Runtime Versions @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/uk-UA/presets/pastel-powerline.md b/docs/uk-UA/presets/pastel-powerline.md index 73d0e1de..7f05b69a 100644 --- a/docs/uk-UA/presets/pastel-powerline.md +++ b/docs/uk-UA/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#pastel-powerline) +[Повернутися до Шаблонів](./#pastel-powerline) # Pastel Powerline @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/uk-UA/presets/plain-text.md b/docs/uk-UA/presets/plain-text.md index 160d2b58..921f019a 100644 --- a/docs/uk-UA/presets/plain-text.md +++ b/docs/uk-UA/presets/plain-text.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#plain-text-symbols) +[Повернутися до Шаблонів](./#plain-text-symbols) ## Plain Text Symbols @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/uk-UA/presets/pure-preset.md b/docs/uk-UA/presets/pure-preset.md index d9707f38..9a889ca5 100644 --- a/docs/uk-UA/presets/pure-preset.md +++ b/docs/uk-UA/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#pure) +[Повернутися до Шаблонів](./#pure) # Pure Prompt @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/uk-UA/presets/tokyo-night.md b/docs/uk-UA/presets/tokyo-night.md index 391f0322..deb9ab9e 100644 --- a/docs/uk-UA/presets/tokyo-night.md +++ b/docs/uk-UA/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Повернутися до Шаблонів](./README.md#pastel-powerline) +[Повернутися до Шаблонів](./#pastel-powerline) # Tokyo Night @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Натисніть, щоб завантажити TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/vi-VN/README.md b/docs/vi-VN/README.md index f0b2c9fb..34321796 100644 --- a/docs/vi-VN/README.md +++ b/docs/vi-VN/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: Nhỏ gọn, cực nhanh, và khả năng tuỳ chỉnh vô hạn prompt cho bất kì shell nào! -actionText: Bắt đầu → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: Nhỏ gọn, cực nhanh, và khả năng tuỳ chỉnh vô hạn prompt cho bất kì shell nào! + actions: + - theme: brand + text: Bắt đầu → + link: ./guide/ features: - - + - title: Khả năng tương thích details: Những công việc trên đa số các shell phổ biến trên đa số các hệ điều hành phổ biến. Sử dụng nó ở mọi nơi! - - + - title: Sức mạnh của Rust details: Mang lại tốc độ và độ an toàn tốt nhất của Rust, giúp prompt của bạn thực thi nhanh chóng và đáng tin cậy nhất có thể. - - + - title: Khả năng tuỳ biến details: Mọi chi tiết nhỏ được tuỳ biến theo ý thích của bạn, giúp prompt này nhỏ nhất có thể hoặc phong phú về tính năng như bạn muốn. footer: Cấp phép bởi ISC | Bản quyền © 2019-nay Starship Contributors diff --git a/docs/vi-VN/advanced-config/README.md b/docs/vi-VN/advanced-config/README.md index c7f3c956..b4622142 100644 --- a/docs/vi-VN/advanced-config/README.md +++ b/docs/vi-VN/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/vi-VN/config/README.md b/docs/vi-VN/config/README.md index c8e5113b..6b9435b3 100644 --- a/docs/vi-VN/config/README.md +++ b/docs/vi-VN/config/README.md @@ -158,7 +158,7 @@ Ví dụ: #### Các chuỗi kiểu -Đa số các module trong starship cho phép bạn cấu hình kiểu hiển thị của chúng. This is done with an entry (thường được gọi là `kiểu`) cái là một cuỗi cấu hình đặc biệt. Đây là vài ví dụ của các chuỗi kiểu cũng với những gì chúng làm. Cú pháp chi tiết đầy đủ, tham khảo [hướng dẫn cấu hình nâng cao](/advanced-config/). +Đa số các module trong starship cho phép bạn cấu hình kiểu hiển thị của chúng. This is done with an entry (thường được gọi là `kiểu`) cái là một cuỗi cấu hình đặc biệt. Đây là vài ví dụ của các chuỗi kiểu cũng với những gì chúng làm. Cú pháp chi tiết đầy đủ, tham khảo [hướng dẫn cấu hình nâng cao](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ Cái này là danh sách các tuỳ chọn cho cấu hình prompt-wide. | Tuỳ chọn | Mặc định | Mô tả | | ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Cấu hình định dạng của prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout của starship cho việc quét các tập tin (tính theo milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Chèn dòng trắng giữa các dấu nhắc lệnh. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/vi-VN/faq/README.md b/docs/vi-VN/faq/README.md index 04983a2d..0e32b87e 100644 --- a/docs/vi-VN/faq/README.md +++ b/docs/vi-VN/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## Tôi thấy các biểu tượng tôi không hiểu hoặc không mong muốn, chúng có nghĩa là gì? diff --git a/docs/vi-VN/guide/README.md b/docs/vi-VN/guide/README.md index 70bc2f10..13a31929 100644 --- a/docs/vi-VN/guide/README.md +++ b/docs/vi-VN/guide/README.md @@ -40,11 +40,11 @@

    - Website + Website · Cài đặt · - Cấu hình + Cấu hình

    @@ -171,7 +171,7 @@ - **Dễ dàng:** cài đặt nhanh chóng – bắt đầu sử dụng nó trong vài phút.

    -Khám phá tài liệu của Starship  ▶ +Khám phá tài liệu của Starship  ▶

    diff --git a/docs/vi-VN/installing/README.md b/docs/vi-VN/installing/README.md index 240ad73d..fed17391 100644 --- a/docs/vi-VN/installing/README.md +++ b/docs/vi-VN/installing/README.md @@ -5,7 +5,7 @@ 1. Lấy tệp tin **starship** nhị phân về máy tính của bạn 1. Nói với shell của bạn để sử dụng tệp tin starship nhị phân như là prompt của nó bằng việc chỉnh sửa những đoạn mã khởi tạo của nó -Đối với đa số người dùng, các hướng dẫn trên [trang chính](/guide/#🚀-installation) sẽ làm việc tốt. Tuy nhiên, với một vài nền tảng đặc biệt hơn, các hướng dẫn khác nhau là cần thiết. +Đối với đa số người dùng, các hướng dẫn trên [trang chính](../guide/#🚀-installation) sẽ làm việc tốt. Tuy nhiên, với một vài nền tảng đặc biệt hơn, các hướng dẫn khác nhau là cần thiết. Có rất nhiều nền tảng bên ngoài, rằng chúng đã không khớp như trong tệp tin README.md, do đó đây là vài hướng dẫn cài đặt cho những nền tảng khác đến từ cộng đồng. Của bạn không có ở đây? Xin hãy thêm nó vào đây nếu bạn tìm ra nó! diff --git a/docs/vi-VN/presets/bracketed-segments.md b/docs/vi-VN/presets/bracketed-segments.md index 25ba9452..4233b681 100644 --- a/docs/vi-VN/presets/bracketed-segments.md +++ b/docs/vi-VN/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/vi-VN/presets/gruvbox-rainbow.md b/docs/vi-VN/presets/gruvbox-rainbow.md index 5986631c..d04c7fce 100644 --- a/docs/vi-VN/presets/gruvbox-rainbow.md +++ b/docs/vi-VN/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/vi-VN/presets/jetpack.md b/docs/vi-VN/presets/jetpack.md index 4b83fa3d..3a80bba6 100644 --- a/docs/vi-VN/presets/jetpack.md +++ b/docs/vi-VN/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/vi-VN/presets/nerd-font.md b/docs/vi-VN/presets/nerd-font.md index 5d71f108..63c1b508 100644 --- a/docs/vi-VN/presets/nerd-font.md +++ b/docs/vi-VN/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/vi-VN/presets/no-empty-icons.md b/docs/vi-VN/presets/no-empty-icons.md index 4cbc47ee..97f6adac 100644 --- a/docs/vi-VN/presets/no-empty-icons.md +++ b/docs/vi-VN/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/vi-VN/presets/no-nerd-font.md b/docs/vi-VN/presets/no-nerd-font.md index 58807736..ae7b6f91 100644 --- a/docs/vi-VN/presets/no-nerd-font.md +++ b/docs/vi-VN/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/vi-VN/presets/no-runtimes.md b/docs/vi-VN/presets/no-runtimes.md index 7496b846..9999945f 100644 --- a/docs/vi-VN/presets/no-runtimes.md +++ b/docs/vi-VN/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/vi-VN/presets/pastel-powerline.md b/docs/vi-VN/presets/pastel-powerline.md index 067423a8..76f70210 100644 --- a/docs/vi-VN/presets/pastel-powerline.md +++ b/docs/vi-VN/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/vi-VN/presets/plain-text.md b/docs/vi-VN/presets/plain-text.md index 6d0945cc..00a00bd6 100644 --- a/docs/vi-VN/presets/plain-text.md +++ b/docs/vi-VN/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/vi-VN/presets/pure-preset.md b/docs/vi-VN/presets/pure-preset.md index c9c5c23d..13f0f2fb 100644 --- a/docs/vi-VN/presets/pure-preset.md +++ b/docs/vi-VN/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/vi-VN/presets/tokyo-night.md b/docs/vi-VN/presets/tokyo-night.md index 96f47f0c..22335039 100644 --- a/docs/vi-VN/presets/tokyo-night.md +++ b/docs/vi-VN/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 4ce164ea..3a01b614 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: 轻量、迅速、客制化的高颜值终端! -actionText: 快速上手 → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: 轻量、迅速、客制化的高颜值终端! + actions: + - theme: brand + text: 快速上手 → + link: ./guide/ features: - - + - title: 兼容性优先 details: Starship 可以在常见的操作系统和 shell 上运行。 尝试着在各种地方使用它吧! - - + - title: 基于 Rust details: Rust 特有的的速度与安全性,让你的提示尽可能的快速可靠。 - - + - title: 客制化 details: 每个小细节都可以按您喜欢的客制化,不论是最小化以求速度,还是更大以获得最完善的功能。 footer: ISC 许可 | 版权所有 © 2019至今 - Starship 贡献者 diff --git a/docs/zh-CN/advanced-config/README.md b/docs/zh-CN/advanced-config/README.md index e4afa3ff..79d6118a 100644 --- a/docs/zh-CN/advanced-config/README.md +++ b/docs/zh-CN/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) 一些 Shell 支持右侧提示, 它与输入区渲染在同一行。 使用 `right_format` 选项来设置 Starship 的右侧提示。 所有支持 `format` 的组件也同时支持 `right_format`。 未显式在 `format` 或 `right_format` 中使用的组件,会保存在变量 `$all` 中。 -注意:右侧提示和输入区显示在同一行。 如果需要在输入区的上方显示右对齐的组件,请查阅 [`fill` 组件](/config/#fill)。 +注意:右侧提示和输入区显示在同一行。 如果需要在输入区的上方显示右对齐的组件,请查阅 [`fill` 组件](../config/#fill)。 `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/zh-CN/config/README.md b/docs/zh-CN/config/README.md index ceb6bc6f..39dd985a 100644 --- a/docs/zh-CN/config/README.md +++ b/docs/zh-CN/config/README.md @@ -17,7 +17,7 @@ add_newline = true # 将提示符中的 '❯' 替换为 '➜' [character] # 此组件名称为 'character' -success_symbol = '[➜](bold green)' # 将 'success_symbol' 字段设置成颜色为 'bold green' 的 '➜' +success_symbol = '[➜](bold green)' # 将 'success_symbol' 字段设置成颜色为 'bold green' 的 '➜' # 禁用 'package' 组件,将其隐藏 [package] @@ -158,7 +158,7 @@ line2 #### 样式字符串 -Starship 中的大多数组件允许您为其设置显示样式。 显示样式可以通过一个字符串字段(一般是 `style`)来设置。 以下的例子给出了一些样式字符串并描述了它们的效果。 样式字符串的完整语法请查阅 [高级配置指南](/advanced-config/)。 +Starship 中的大多数组件允许您为其设置显示样式。 显示样式可以通过一个字符串字段(一般是 `style`)来设置。 以下的例子给出了一些样式字符串并描述了它们的效果。 样式字符串的完整语法请查阅 [高级配置指南](../advanced-config/)。 - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | 选项 | 默认值 | 描述 | | ----------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [见下文](#default-prompt-format) | 配置提示符的格式。 | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Starship 扫描文件的超时时间(单位:毫秒)。 | | `command_timeout` | `500` | Startship 执行命令的超时时间(单位:毫秒)。 | | `add_newline` | `true` | 在 shell 提示符之间插入空行。 | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/zh-CN/faq/README.md b/docs/zh-CN/faq/README.md index 57f87a70..7514d2aa 100644 --- a/docs/zh-CN/faq/README.md +++ b/docs/zh-CN/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## 为什么我会遇到 `Executing command "..." timed out.` 警告? -Starship 会执行数个不同的命令来获取应该显示的信息,例如某个程序的版本号、现在 Git 的工作树状态。 为保证 Starship 不会在执行某条命令时卡住,Starship 会终止执行时间过长的命令并且输出以上警告。这是正常现象。 若希望增加时长限制,它可以在 [`command_timeout` 设置](/config/#prompt) 处自定义。 您也可以按照下文的调试步骤查看并优化运行慢的命令。 最后,您也可以设置环境变量 `STARSHIP_LOG` 为 `error` 来隐藏这些警告。 +Starship 会执行数个不同的命令来获取应该显示的信息,例如某个程序的版本号、现在 Git 的工作树状态。 为保证 Starship 不会在执行某条命令时卡住,Starship 会终止执行时间过长的命令并且输出以上警告。这是正常现象。 若希望增加时长限制,它可以在 [`command_timeout` 设置](../config/#prompt) 处自定义。 您也可以按照下文的调试步骤查看并优化运行慢的命令。 最后,您也可以设置环境变量 `STARSHIP_LOG` 为 `error` 来隐藏这些警告。 ## 我不理解某些符号,它们是什么意思? diff --git a/docs/zh-CN/guide/README.md b/docs/zh-CN/guide/README.md index 3ee33d96..663d4538 100644 --- a/docs/zh-CN/guide/README.md +++ b/docs/zh-CN/guide/README.md @@ -40,11 +40,11 @@

    - 网站 + 网站 · 安装 · - 配置 + 配置

    @@ -171,7 +171,7 @@ - **易用:** 安装快速 —— 几分钟就可上手。

    -探索 Starship 文档 +探索 Starship 文档

    diff --git a/docs/zh-CN/installing/README.md b/docs/zh-CN/installing/README.md index 37ebca04..2d40cdbc 100644 --- a/docs/zh-CN/installing/README.md +++ b/docs/zh-CN/installing/README.md @@ -5,7 +5,7 @@ 1. 下载 **Starship** 的可执行文件 1. 修改 shell 的初始化脚本,将 Starship 设置为命令提示符 -大部分用户按照[主页](/guide/#🚀-installation)上的步骤安装即可, 但有一些特殊系统上的安装步骤不同。 +大部分用户按照[主页](../guide/#🚀-installation)上的步骤安装即可, 但有一些特殊系统上的安装步骤不同。 现有平台众多,README 中无法全部展示,所以这里是社区中对其他平台 的一些安装说明。 找不到你的平台? 如果你知道怎么安装,请添加到这里! diff --git a/docs/zh-CN/presets/bracketed-segments.md b/docs/zh-CN/presets/bracketed-segments.md index 84388a32..ca6c4358 100644 --- a/docs/zh-CN/presets/bracketed-segments.md +++ b/docs/zh-CN/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#bracketed-segments) +[返回全部预设](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/zh-CN/presets/gruvbox-rainbow.md b/docs/zh-CN/presets/gruvbox-rainbow.md index 8402e96d..4ab3c76e 100644 --- a/docs/zh-CN/presets/gruvbox-rainbow.md +++ b/docs/zh-CN/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#gruvbox-rainbow) +[返回全部预设](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/zh-CN/presets/jetpack.md b/docs/zh-CN/presets/jetpack.md index 27ba891e..e865ecf5 100644 --- a/docs/zh-CN/presets/jetpack.md +++ b/docs/zh-CN/presets/jetpack.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#jetpack) +[返回全部预设](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/zh-CN/presets/nerd-font.md b/docs/zh-CN/presets/nerd-font.md index 312f3c64..5b4beba4 100644 --- a/docs/zh-CN/presets/nerd-font.md +++ b/docs/zh-CN/presets/nerd-font.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#nerd-font-symbols) +[返回全部预设](./#nerd-font-symbols) # Nerd 字体符号预设 @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/zh-CN/presets/no-empty-icons.md b/docs/zh-CN/presets/no-empty-icons.md index f858ee91..521cc9da 100644 --- a/docs/zh-CN/presets/no-empty-icons.md +++ b/docs/zh-CN/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#no-empty-icons) +[返回全部预设](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/zh-CN/presets/no-nerd-font.md b/docs/zh-CN/presets/no-nerd-font.md index c1ac1e14..8d876d3b 100644 --- a/docs/zh-CN/presets/no-nerd-font.md +++ b/docs/zh-CN/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#no-nerd-fonts) +[返回全部预设](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/zh-CN/presets/no-runtimes.md b/docs/zh-CN/presets/no-runtimes.md index 2e8da252..f1320a01 100644 --- a/docs/zh-CN/presets/no-runtimes.md +++ b/docs/zh-CN/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#no-runtime-versions) +[返回全部预设](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/zh-CN/presets/pastel-powerline.md b/docs/zh-CN/presets/pastel-powerline.md index ff0b51c4..e01ffac7 100644 --- a/docs/zh-CN/presets/pastel-powerline.md +++ b/docs/zh-CN/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#pastel-powerline) +[返回全部预设](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/zh-CN/presets/plain-text.md b/docs/zh-CN/presets/plain-text.md index 4f594176..dadef457 100644 --- a/docs/zh-CN/presets/plain-text.md +++ b/docs/zh-CN/presets/plain-text.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#plain-text-symbols) +[返回全部预设](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/zh-CN/presets/pure-preset.md b/docs/zh-CN/presets/pure-preset.md index 9c3ed1bb..d03dcef2 100644 --- a/docs/zh-CN/presets/pure-preset.md +++ b/docs/zh-CN/presets/pure-preset.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#pure) +[返回全部预设](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/zh-CN/presets/tokyo-night.md b/docs/zh-CN/presets/tokyo-night.md index 526f2781..042bb1cc 100644 --- a/docs/zh-CN/presets/tokyo-night.md +++ b/docs/zh-CN/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[返回全部预设](./README.md#pastel-powerline) +[返回全部预设](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [点击下载 TOML 文件](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/docs/zh-TW/README.md b/docs/zh-TW/README.md index 3f72e0d4..938cf435 100644 --- a/docs/zh-TW/README.md +++ b/docs/zh-TW/README.md @@ -1,18 +1,21 @@ --- -home: true -heroImage: /logo.svg -heroText: -tagline: 適合任何 shell 的最小、極速、無限客製化的提示字元! -actionText: 馬上開始 → -actionLink: ./guide/ +layout: home +hero: + image: /logo.svg + text: null + tagline: 適合任何 shell 的最小、極速、無限客製化的提示字元! + actions: + - theme: brand + text: 馬上開始 → + link: ./guide/ features: - - + - title: 相容性優先 details: 能夠在最常見的作業系統之中最常見的 shell 上運作。 在各處使用它吧! - - + - title: 以 Rust 開發 details: 帶來同類中最快的速度以及 Rust 的安全性,讓你的提示字元盡可能快速與可靠。 - - + - title: 可客製化 details: 任何些微的細節都可以隨你喜愛地客製化,讓你的提示字元可以隨你所欲地最小化或是充滿各種特色。 footer: ISC Licensed | Copyright © 2019-present Starship Contributors diff --git a/docs/zh-TW/advanced-config/README.md b/docs/zh-TW/advanced-config/README.md index 89a696d7..4eea479b 100644 --- a/docs/zh-TW/advanced-config/README.md +++ b/docs/zh-TW/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`. -Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](/config/#fill). +Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/zh-TW/config/README.md b/docs/zh-TW/config/README.md index 508690dd..20511fc8 100644 --- a/docs/zh-TW/config/README.md +++ b/docs/zh-TW/config/README.md @@ -158,7 +158,7 @@ In the second part, which is enclosed in a `()`, is a [style string](#style-stri #### 風格字串 -Starship 內大多數的模組允許你設定他們的顯示風格。 這要透過一個條目 (通常叫做 `style`),這個條目使用一個字串來進行設定。 這裡給幾個風格字串的例子,以及這些字串的功用。 對於完整語法的詳細說明,請參照 [進階設定指南](/advanced-config/)。 +Starship 內大多數的模組允許你設定他們的顯示風格。 這要透過一個條目 (通常叫做 `style`),這個條目使用一個字串來進行設定。 這裡給幾個風格字串的例子,以及這些字串的功用。 對於完整語法的詳細說明,請參照 [進階設定指南](../advanced-config/)。 - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -200,12 +200,12 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | 選項 | 預設 | 說明 | | ----------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [連結](#default-prompt-format) | Configure the format of the prompt. | -| `right_format` | `''` | See [Enable Right Prompt](/advanced-config/#enable-right-prompt) | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | | `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | | `add_newline` | `true` | Inserts blank line between shell prompts. | | `palette` | `''` | Sets which color palette from `palettes` to use. | -| `palettes` | `{}` | Collection of color palettes that assign [colors](/advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | | `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip diff --git a/docs/zh-TW/faq/README.md b/docs/zh-TW/faq/README.md index f19960c7..f6fa1047 100644 --- a/docs/zh-TW/faq/README.md +++ b/docs/zh-TW/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Why do I see `Executing command "..." timed out.` warnings? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](/config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. ## 我發現一些看不懂或意料外的符號,那是代表什麼意思? diff --git a/docs/zh-TW/guide/README.md b/docs/zh-TW/guide/README.md index f17404c2..b0964761 100644 --- a/docs/zh-TW/guide/README.md +++ b/docs/zh-TW/guide/README.md @@ -40,11 +40,11 @@

    - 網站 + 網站 · 安裝 · - 設定 + 設定

    @@ -171,7 +171,7 @@ - **易用:**安裝快速 – 幾分鐘內即可開始使用。

    -探索 Starship 文件  ▶ +探索 Starship 文件  ▶

    diff --git a/docs/zh-TW/installing/README.md b/docs/zh-TW/installing/README.md index 17293bd8..bc8a6cad 100644 --- a/docs/zh-TW/installing/README.md +++ b/docs/zh-TW/installing/README.md @@ -5,7 +5,7 @@ 1. 下載 **starship** 執行檔到你的電腦裡 1. 修改 shell 的初始化腳本,讓其使用 starship 作為提示字元 -對大部分的使用者來說,在[主頁面](/guide/#🚀-installation)的安裝指引皆足以正常運作。 然而,對於一些較特別的平台,我們需要不同的安裝指引。 +對大部分的使用者來說,在[主頁面](../guide/#🚀-installation)的安裝指引皆足以正常運作。 然而,對於一些較特別的平台,我們需要不同的安裝指引。 有太多平台不適用於主要的 README.md 檔案了,所以這裡有一些來自社群的其他平台的安裝指引。 你的平台不在這裡嗎? 如果你找出怎麼安裝,請幫我們加上你的指引! diff --git a/docs/zh-TW/presets/bracketed-segments.md b/docs/zh-TW/presets/bracketed-segments.md index 3c625d5d..2e607e84 100644 --- a/docs/zh-TW/presets/bracketed-segments.md +++ b/docs/zh-TW/presets/bracketed-segments.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#bracketed-segments) +[Return to Presets](./#bracketed-segments) # Bracketed Segments Preset @@ -14,4 +14,4 @@ starship preset bracketed-segments -o ~/.config/starship.toml [Click to download TOML](/presets/toml/bracketed-segments.toml) -<<< @/.vuepress/public/presets/toml/bracketed-segments.toml +<<< @/public/presets/toml/bracketed-segments.toml diff --git a/docs/zh-TW/presets/gruvbox-rainbow.md b/docs/zh-TW/presets/gruvbox-rainbow.md index d1f3c343..868e12e0 100644 --- a/docs/zh-TW/presets/gruvbox-rainbow.md +++ b/docs/zh-TW/presets/gruvbox-rainbow.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#gruvbox-rainbow) +[Return to Presets](./#gruvbox-rainbow) # Gruvbox Rainbow Preset @@ -18,4 +18,4 @@ starship preset gruvbox-rainbow -o ~/.config/starship.toml [Click to download TOML](/presets/toml/gruvbox-rainbow.toml) -<<< @/.vuepress/public/presets/toml/gruvbox-rainbow.toml +<<< @/public/presets/toml/gruvbox-rainbow.toml diff --git a/docs/zh-TW/presets/jetpack.md b/docs/zh-TW/presets/jetpack.md index 0d85a56b..9100e44d 100644 --- a/docs/zh-TW/presets/jetpack.md +++ b/docs/zh-TW/presets/jetpack.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#jetpack) +[Return to Presets](./#jetpack) # Jetpack Preset @@ -21,4 +21,4 @@ starship preset jetpack -o ~/.config/starship.toml [Click to download TOML](/presets/toml/jetpack.toml) -<<< @/.vuepress/public/presets/toml/jetpack.toml +<<< @/public/presets/toml/jetpack.toml diff --git a/docs/zh-TW/presets/nerd-font.md b/docs/zh-TW/presets/nerd-font.md index fc2a1229..c19ed7d5 100644 --- a/docs/zh-TW/presets/nerd-font.md +++ b/docs/zh-TW/presets/nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#nerd-font-symbols) +[Return to Presets](./#nerd-font-symbols) # Nerd Font Symbols Preset @@ -18,4 +18,4 @@ starship preset nerd-font-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/nerd-font-symbols.toml) -<<< @/.vuepress/public/presets/toml/nerd-font-symbols.toml +<<< @/public/presets/toml/nerd-font-symbols.toml diff --git a/docs/zh-TW/presets/no-empty-icons.md b/docs/zh-TW/presets/no-empty-icons.md index 279306d4..b1a264ed 100644 --- a/docs/zh-TW/presets/no-empty-icons.md +++ b/docs/zh-TW/presets/no-empty-icons.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-empty-icons) +[Return to Presets](./#no-empty-icons) # No Empty Icons Preset @@ -14,4 +14,4 @@ starship preset no-empty-icons -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-empty-icons.toml) -<<< @/.vuepress/public/presets/toml/no-empty-icons.toml +<<< @/public/presets/toml/no-empty-icons.toml diff --git a/docs/zh-TW/presets/no-nerd-font.md b/docs/zh-TW/presets/no-nerd-font.md index 7f435765..f9a6872a 100644 --- a/docs/zh-TW/presets/no-nerd-font.md +++ b/docs/zh-TW/presets/no-nerd-font.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-nerd-fonts) +[Return to Presets](./#no-nerd-fonts) # No Nerd Fonts Preset @@ -16,4 +16,4 @@ starship preset no-nerd-font -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-nerd-font.toml) -<<< @/.vuepress/public/presets/toml/no-nerd-font.toml +<<< @/public/presets/toml/no-nerd-font.toml diff --git a/docs/zh-TW/presets/no-runtimes.md b/docs/zh-TW/presets/no-runtimes.md index 701febb8..0acb751a 100644 --- a/docs/zh-TW/presets/no-runtimes.md +++ b/docs/zh-TW/presets/no-runtimes.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#no-runtime-versions) +[Return to Presets](./#no-runtime-versions) # No Runtime Versions Preset @@ -14,4 +14,4 @@ starship preset no-runtime-versions -o ~/.config/starship.toml [Click to download TOML](/presets/toml/no-runtime-versions.toml) -<<< @/.vuepress/public/presets/toml/no-runtime-versions.toml +<<< @/public/presets/toml/no-runtime-versions.toml diff --git a/docs/zh-TW/presets/pastel-powerline.md b/docs/zh-TW/presets/pastel-powerline.md index e1e91f37..451344c9 100644 --- a/docs/zh-TW/presets/pastel-powerline.md +++ b/docs/zh-TW/presets/pastel-powerline.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Pastel Powerline Preset @@ -18,4 +18,4 @@ starship preset pastel-powerline -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pastel-powerline.toml) -<<< @/.vuepress/public/presets/toml/pastel-powerline.toml +<<< @/public/presets/toml/pastel-powerline.toml diff --git a/docs/zh-TW/presets/plain-text.md b/docs/zh-TW/presets/plain-text.md index fddb8528..23b058dc 100644 --- a/docs/zh-TW/presets/plain-text.md +++ b/docs/zh-TW/presets/plain-text.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#plain-text-symbols) +[Return to Presets](./#plain-text-symbols) ## Plain Text Symbols Preset @@ -14,4 +14,4 @@ starship preset plain-text-symbols -o ~/.config/starship.toml [Click to download TOML](/presets/toml/plain-text-symbols.toml) -<<< @/.vuepress/public/presets/toml/plain-text-symbols.toml +<<< @/public/presets/toml/plain-text-symbols.toml diff --git a/docs/zh-TW/presets/pure-preset.md b/docs/zh-TW/presets/pure-preset.md index cf03bdd1..b8e1730a 100644 --- a/docs/zh-TW/presets/pure-preset.md +++ b/docs/zh-TW/presets/pure-preset.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pure) +[Return to Presets](./#pure) # Pure Preset @@ -14,4 +14,4 @@ starship preset pure-preset -o ~/.config/starship.toml [Click to download TOML](/presets/toml/pure-preset.toml) -<<< @/.vuepress/public/presets/toml/pure-preset.toml +<<< @/public/presets/toml/pure-preset.toml diff --git a/docs/zh-TW/presets/tokyo-night.md b/docs/zh-TW/presets/tokyo-night.md index 040f815d..5d582c6a 100644 --- a/docs/zh-TW/presets/tokyo-night.md +++ b/docs/zh-TW/presets/tokyo-night.md @@ -1,4 +1,4 @@ -[Return to Presets](./README.md#pastel-powerline) +[Return to Presets](./#pastel-powerline) # Tokyo Night Preset @@ -18,4 +18,4 @@ starship preset tokyo-night -o ~/.config/starship.toml [Click to download TOML](/presets/toml/tokyo-night.toml) -<<< @/.vuepress/public/presets/toml/tokyo-night.toml +<<< @/public/presets/toml/tokyo-night.toml diff --git a/src/print.rs b/src/print.rs index 78c3dd6c..9ef18f32 100644 --- a/src/print.rs +++ b/src/print.rs @@ -649,7 +649,7 @@ mod test { preset_command(Some(Preset("nerd-font-symbols")), Some(path.clone()), false); let actual = utils::read_file(&path)?; - let expected = include_str!("../docs/.vuepress/public/presets/toml/nerd-font-symbols.toml"); + let expected = include_str!("../docs/public/presets/toml/nerd-font-symbols.toml"); assert_eq!(actual, expected); dir.close() From 7290c5e368aab8cd60f3055651a49a6fde78f8aa Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 3 Mar 2024 17:57:39 +0100 Subject: [PATCH 172/651] chore: apply clippy for rust 1.76 & bump msrv (#5763) --- Cargo.toml | 2 +- src/context.rs | 6 ++---- src/modules/direnv.rs | 26 ++++++++++++++++---------- src/modules/dotnet.rs | 4 ++-- src/utils.rs | 2 +- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4551e7ef..8884be23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ license = "ISC" readme = "README.md" repository = "https://github.com/starship/starship" # Note: MSRV is only intended as a hint, and only the latest version is officially supported in starship. -rust-version = "1.65" +rust-version = "1.71" description = """ The minimal, blazing-fast, and infinitely customizable prompt for any shell! ☄🌌️ """ diff --git a/src/context.rs b/src/context.rs index 4a651908..2b999412 100644 --- a/src/context.rs +++ b/src/context.rs @@ -339,10 +339,8 @@ impl<'a> Context<'a> { ); let branch = get_current_branch(&repository); - let remote = get_remote_repository_info( - &repository, - branch.as_ref().map(|name| name.as_ref()), - ); + let remote = + get_remote_repository_info(&repository, branch.as_ref().map(AsRef::as_ref)); let path = repository.path().to_path_buf(); let fs_monitor_value_is_true = repository diff --git a/src/modules/direnv.rs b/src/modules/direnv.rs index 5a5999ef..823c0adf 100644 --- a/src/modules/direnv.rs +++ b/src/modules/direnv.rs @@ -85,7 +85,7 @@ impl FromStr for DirenvState { fn from_str(s: &str) -> Result { match serde_json::from_str::(s) { - Ok(raw) => Ok(DirenvState { + Ok(raw) => Ok(Self { rc_path: raw.state.found_rc.path, allowed: raw.state.found_rc.allowed.try_into()?, loaded: matches!( @@ -93,7 +93,7 @@ impl FromStr for DirenvState { AllowStatus::Allowed ), }), - Err(_) => DirenvState::from_lines(s), + Err(_) => Self::from_lines(s), } } } @@ -225,7 +225,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -242,7 +242,7 @@ mod tests { ); assert_eq!( - Some(format!("direnv not loaded/allowed ")), + Some("direnv not loaded/allowed ".to_string()), renderer.collect() ); @@ -281,7 +281,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -297,7 +297,10 @@ mod tests { }), ); - assert_eq!(Some(format!("direnv loaded/allowed ")), renderer.collect()); + assert_eq!( + Some("direnv loaded/allowed ".to_string()), + renderer.collect() + ); dir.close() } @@ -334,7 +337,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -350,7 +353,10 @@ mod tests { }), ); - assert_eq!(Some(format!("direnv loaded/denied ")), renderer.collect()); + assert_eq!( + Some("direnv loaded/denied ".to_string()), + renderer.collect() + ); dir.close() } @@ -359,7 +365,7 @@ mod tests { let dir = tempfile::tempdir()?; let rc_path = dir.path().join(".envrc"); - std::fs::File::create(&rc_path)?.sync_all()?; + std::fs::File::create(rc_path)?.sync_all()?; let renderer = ModuleRenderer::new("direnv") .config(toml::toml! { @@ -376,7 +382,7 @@ mod tests { ); assert_eq!( - Some(format!("direnv loaded/not allowed ")), + Some("direnv loaded/not allowed ".to_string()), renderer.collect() ); diff --git a/src/modules/dotnet.rs b/src/modules/dotnet.rs index 4539b4d5..cdbb3f69 100644 --- a/src/modules/dotnet.rs +++ b/src/modules/dotnet.rs @@ -270,7 +270,7 @@ fn get_local_dotnet_files(context: &Context) -> Result, std::io: fn get_dotnet_file_type(path: &Path) -> Option { let file_name_lower = map_str_to_lower(path.file_name()); - match file_name_lower.as_ref().map(std::convert::AsRef::as_ref) { + match file_name_lower.as_ref().map(AsRef::as_ref) { Some(GLOBAL_JSON_FILE) => return Some(FileType::GlobalJson), Some(PROJECT_JSON_FILE) => return Some(FileType::ProjectJson), _ => (), @@ -278,7 +278,7 @@ fn get_dotnet_file_type(path: &Path) -> Option { let extension_lower = map_str_to_lower(path.extension()); - match extension_lower.as_ref().map(std::convert::AsRef::as_ref) { + match extension_lower.as_ref().map(AsRef::as_ref) { Some("sln") => return Some(FileType::SolutionFile), Some("csproj" | "fsproj" | "xproj") => return Some(FileType::ProjectFile), Some("props" | "targets") => return Some(FileType::MsBuildFile), diff --git a/src/utils.rs b/src/utils.rs index 7eaeba3f..a0d53855 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -136,7 +136,7 @@ pub fn display_command + Debug, U: AsRef + Debug>( args: &[U], ) -> String { std::iter::once(cmd.as_ref()) - .chain(args.iter().map(std::convert::AsRef::as_ref)) + .chain(args.iter().map(AsRef::as_ref)) .map(|i| i.to_string_lossy().into_owned()) .collect::>() .join(" ") From ae711c0f332f4f24c843e59d6d5783e398e21b38 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 3 Mar 2024 17:59:23 +0100 Subject: [PATCH 173/651] feat(bash): use PS0 for preexec hook (#5735) --- src/init/starship.bash | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/init/starship.bash b/src/init/starship.bash index c59fb5a4..1e6a972b 100644 --- a/src/init/starship.bash +++ b/src/init/starship.bash @@ -75,7 +75,7 @@ starship_precmd() { STARSHIP_END_TIME=$(::STARSHIP:: time) STARSHIP_DURATION=$((STARSHIP_END_TIME - STARSHIP_START_TIME)) ARGS+=( --cmd-duration="${STARSHIP_DURATION}") - unset STARSHIP_START_TIME + STARSHIP_START_TIME="" fi PS1="$(::STARSHIP:: prompt "${ARGS[@]}")" if [[ ${BLE_ATTACHED-} ]]; then @@ -98,17 +98,27 @@ elif [[ -n "${bash_preexec_imported:-}" || -n "${__bp_imported:-}" || -n "${pree preexec_functions+=(starship_preexec_all) precmd_functions+=(starship_precmd) else - # We want to avoid destroying an existing DEBUG hook. If we detect one, create - # a new function that runs both the existing function AND our function, then - # re-trap DEBUG to use this new function. This prevents a trap clobber. - dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')" - if [[ -z "$dbg_trap" ]]; then - trap 'starship_preexec "$_"' DEBUG - elif [[ "$dbg_trap" != 'starship_preexec "$_"' && "$dbg_trap" != 'starship_preexec_all "$_"' ]]; then - starship_preexec_all() { - local PREV_LAST_ARG=$1 ; $dbg_trap; starship_preexec; : "$PREV_LAST_ARG"; + if [[ -n "${BASH_VERSION-}" ]] && [[ "${BASH_VERSINFO[0]}" -gt 4 || ( "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 ) ]]; then + starship_preexec_ps0() { + ::STARSHIP:: time } - trap 'starship_preexec_all "$_"' DEBUG + # In order to set STARSHIP_START_TIME use an arithmetic expansion that evaluates to 0 + # To avoid printing anything, use the return value in an ${var:offset:length} substring expansion + # with offset and length evaluating to 0. + PS0='${STARSHIP_START_TIME:$((STARSHIP_START_TIME="$(starship_preexec_ps0)",STARSHIP_PREEXEC_READY=0,0)):0}'"${PS0-}" + else + # We want to avoid destroying an existing DEBUG hook. If we detect one, create + # a new function that runs both the existing function AND our function, then + # re-trap DEBUG to use this new function. This prevents a trap clobber. + dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')" + if [[ -z "$dbg_trap" ]]; then + trap 'starship_preexec "$_"' DEBUG + elif [[ "$dbg_trap" != 'starship_preexec "$_"' && "$dbg_trap" != 'starship_preexec_all "$_"' ]]; then + starship_preexec_all() { + local PREV_LAST_ARG=$1 ; $dbg_trap; starship_preexec; : "$PREV_LAST_ARG"; + } + trap 'starship_preexec_all "$_"' DEBUG + fi fi # Finally, prepare the precmd function and set up the start time. We will avoid to From f66bfd9435f215867681a699428bd882d8c63ce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Santos?= <13033016+luismgsantos@users.noreply.github.com> Date: Sun, 3 Mar 2024 17:00:50 +0000 Subject: [PATCH 174/651] feat(install): Add version option to install script (#5728) feat(install): Add version option to install script --- install/install.sh | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/install/install.sh b/install/install.sh index 80fe187a..c068680a 100755 --- a/install/install.sh +++ b/install/install.sh @@ -157,6 +157,7 @@ usage() { "-b, --bin-dir" "Override the bin installation directory [default: ${BIN_DIR}]" \ "-a, --arch" "Override the architecture identified by the installer [default: ${ARCH}]" \ "-B, --base-url" "Override the base URL used for downloading releases [default: ${BASE_URL}]" \ + "-v, --version" "Install a specific version of starship [default: ${VERSION}]" \ "-h, --help" "Display this help message" } @@ -424,6 +425,10 @@ if [ -z "${BASE_URL-}" ]; then BASE_URL="https://github.com/starship/starship/releases" fi +if [ -z "${VERSION-}" ]; then + VERSION="latest" +fi + # Non-POSIX shells can break once executing code due to semantic differences verify_shell_is_posix_or_exit @@ -446,6 +451,10 @@ while [ "$#" -gt 0 ]; do BASE_URL="$2" shift 2 ;; + -v | --version) + VERSION="$2" + shift 2 + ;; -V | --verbose) VERBOSE=1 @@ -476,6 +485,10 @@ while [ "$#" -gt 0 ]; do BASE_URL="${1#*=}" shift 1 ;; + -v=* | --version=*) + VERSION="${1#*=}" + shift 1 + ;; -V=* | --verbose=*) VERBOSE="${1#*=}" shift 1 @@ -517,13 +530,18 @@ if [ "${PLATFORM}" = "pc-windows-msvc" ]; then EXT=zip fi -URL="${BASE_URL}/latest/download/starship-${TARGET}.${EXT}" +if [ "${VERSION}" != "latest" ]; then + URL="${BASE_URL}/download/${VERSION}/starship-${TARGET}.${EXT}" +else + URL="${BASE_URL}/latest/download/starship-${TARGET}.${EXT}" +fi + info "Tarball URL: ${UNDERLINE}${BLUE}${URL}${NO_COLOR}" -confirm "Install Starship ${GREEN}latest${NO_COLOR} to ${BOLD}${GREEN}${BIN_DIR}${NO_COLOR}?" +confirm "Install Starship ${GREEN}${VERSION}${NO_COLOR} to ${BOLD}${GREEN}${BIN_DIR}${NO_COLOR}?" check_bin_dir "${BIN_DIR}" install "${EXT}" -completed "Starship installed" +completed "Starship ${VERSION} installed" printf '\n' info "Please follow the steps for your shell to complete the installation:" From cede42b5dbf18b1000fff3a62b84395a4c365333 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 15:07:30 +0000 Subject: [PATCH 175/651] build(deps): update embarkstudios/cargo-deny-action action to v1.6.0 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index bdb28833..96f7d84c 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.5.15 + uses: EmbarkStudios/cargo-deny-action@v1.6.0 with: command: check ${{ matrix.checks }} From 59f5208325fc91617b4d056ab954f453d771e274 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 17:22:10 +0000 Subject: [PATCH 176/651] build(deps): update embarkstudios/cargo-deny-action action to v1.6.1 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 96f7d84c..cc057157 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.6.0 + uses: EmbarkStudios/cargo-deny-action@v1.6.1 with: command: check ${{ matrix.checks }} From a1d2abe71eef47cc5ffe8d1166b3d26fa998f740 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 17:22:52 +0000 Subject: [PATCH 177/651] build(deps): update rust crate chrono to 0.4.35 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e152d7e3..0ec3cea3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -409,9 +409,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index 8884be23..dd64576e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.34", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.35", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.1", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.1" dirs-next = "2.0.0" From 90f42ad66ce2f0add083faeb4a95f113bdcb013b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 19:07:17 +0000 Subject: [PATCH 178/651] build(deps): update rust crate clap to 4.5.2 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0ec3cea3..a281851b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -423,9 +423,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", "clap_derive", @@ -433,9 +433,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index dd64576e..a335d5a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.35", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.1", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.5.2", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.1" dirs-next = "2.0.0" dunce = "1.0.4" From aeb8783a37c91dccde6e93f62af1dd691cb03b5e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 22:03:39 +0000 Subject: [PATCH 179/651] build(deps): update rust crate shadow-rs to 0.27.0 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a281851b..e67a7ca8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2771,9 +2771,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5c5c8276991763b44ede03efaf966eaa0412fafbf299e6380704678ca3b997" +checksum = "dc90f58262c9783799e542c15a936977c32f59f5c9637b9a5ea09ec6a7adaa25" dependencies = [ "const_format", "is_debug", diff --git a/Cargo.toml b/Cargo.toml index a335d5a2..a66777c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.114" sha1 = "0.10.6" -shadow-rs = { version = "0.26.1", default-features = false } +shadow-rs = { version = "0.27.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.28.0", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.26.1", default-features = false } +shadow-rs = { version = "0.27.0", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From e8442f5d95d5f2fc739b611645bdcac206620068 Mon Sep 17 00:00:00 2001 From: Brandon Dong Date: Thu, 7 Mar 2024 12:52:07 -0800 Subject: [PATCH 180/651] docs: Fix git status $all_status documentation (#5826) * add `typechanged` to git status $all_status documentation * Revert dog changes for other languages --- docs/config/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config/README.md b/docs/config/README.md index 469e0797..8e2783df 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -1980,7 +1980,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | From 84a745b6dd9f284a4844064a7ef9650973261bd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:10:38 +0000 Subject: [PATCH 181/651] build(deps): update rust crate open to 5.1.2 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e67a7ca8..6642f83d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2099,9 +2099,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "5.1.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f2588edf622de56e7a1fed57bf203344f63c03f3d43472ba0434a92373c8f27" +checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" dependencies = [ "is-wsl", "libc", diff --git a/Cargo.toml b/Cargo.toml index a66777c4..564d4079 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,7 @@ log = { version = "0.4.21", features = ["std"] } notify-rust = { version = "4.10.0", optional = true } nu-ansi-term = "0.50.0" once_cell = "1.19.0" -open = "5.1.0" +open = "5.1.2" # update os module config and tests when upgrading os_info os_info = "3.7.0" path-slash = "0.2.1" From 3a4c96cb868a10ff7f9632dc13403916a0fd5345 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 9 Mar 2024 08:06:34 +0100 Subject: [PATCH 182/651] build(deps): update softprops/action-gh-release action to v2 (#5831) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c9cb80ed..9fe2c080 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -277,7 +277,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Build | Add Artifacts to Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: starship-*/starship-* tag_name: ${{ needs.release_please.outputs.tag_name }} From c34e00cd3e02a361dbfc4e4d985450eaad385eb7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 9 Mar 2024 08:07:25 +0100 Subject: [PATCH 183/651] build(deps): update codecov/codecov-action action to v4 (#5742) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index f5b19486..e781dbdf 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -220,7 +220,7 @@ jobs: STARSHIP_VERSION: v1.2.3 - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 if: github.repository == 'starship/starship' with: token: ${{ secrets.CODECOV_TOKEN }} From 3949697c0df93a209083e9c92c200c1f015e1f01 Mon Sep 17 00:00:00 2001 From: Jan Katins Date: Sat, 9 Mar 2024 08:08:29 +0100 Subject: [PATCH 184/651] docs(python): Remove a bad config example in the python (#5830) docs(python): Remove a bad config example in the python Running a unknown binary in a subfolder (called `.venv/bin/python`) has at least two drawbacks with some security implication: - In case of a unknown directory, simply cd'ing into a subdirectory could lead to starship executing a unknown binary (usually the binary MUST be in path so it's a decision taken by the user, e.g. by activating the venv) - starship would show the result of the venv python even if the venv is not active but calling `python3` on the cli would NOT run that `python3` in the venv but a different one (most likely the system python3). --- docs/config/README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/docs/config/README.md b/docs/config/README.md index 8e2783df..1c6f626a 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -3508,7 +3508,7 @@ current [Python virtual environment](https://docs.python.org/tutorial/venv.html) If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3590,17 +3590,6 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml - -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` - ## R The `rlang` module shows the currently installed version of [R](https://www.r-project.org/). The module will be shown if From 0dde2b2ce1196723612073b85c9da4b760b36f98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 01:20:39 +0000 Subject: [PATCH 185/651] build(deps): update dependency vitepress to ^1.0.0-rc.45 --- docs/package-lock.json | 8 ++++---- docs/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 9ac3d5f7..13fff1e4 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.0.0-rc.44" + "vitepress": "^1.0.0-rc.45" } }, "node_modules/@adobe/css-tools": { @@ -1697,9 +1697,9 @@ } }, "node_modules/vitepress": { - "version": "1.0.0-rc.44", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.44.tgz", - "integrity": "sha512-tO5taxGI7fSpBK1D8zrZTyJJERlyU9nnt0jHSt3fywfq3VKn977Hg0wUuTkEmwXlFYwuW26+6+3xorf4nD3XvA==", + "version": "1.0.0-rc.45", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.45.tgz", + "integrity": "sha512-/OiYsu5UKpQKA2c0BAZkfyywjfauDjvXyv6Mo4Ra57m5n4Bxg1HgUGoth1CLH2vwUbR/BHvDA9zOM0RDvgeSVQ==", "dev": true, "dependencies": { "@docsearch/css": "^3.5.2", diff --git a/docs/package.json b/docs/package.json index 23d633d1..09476330 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.0.0-rc.44" + "vitepress": "^1.0.0-rc.45" } } From 32ef678e1ba6eee6061be5d031f1a587607f5bbd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 03:41:40 +0000 Subject: [PATCH 186/651] build(deps): update rust crate shadow-rs to 0.27.1 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6642f83d..e1515042 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2771,9 +2771,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc90f58262c9783799e542c15a936977c32f59f5c9637b9a5ea09ec6a7adaa25" +checksum = "7960cbd6ba74691bb15e7ebf97f7136bd02d1115f5695a58c1f31d5645750128" dependencies = [ "const_format", "is_debug", diff --git a/Cargo.toml b/Cargo.toml index 564d4079..4f277279 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.114" sha1 = "0.10.6" -shadow-rs = { version = "0.27.0", default-features = false } +shadow-rs = { version = "0.27.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.28.0", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.27.0", default-features = false } +shadow-rs = { version = "0.27.1", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From cbf6e8d55ef49963465eef18a5a6d687169d09c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 22:10:24 +0000 Subject: [PATCH 187/651] build(deps): update rust crate os_info to 3.8.0 --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e1515042..80d1794f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2139,13 +2139,13 @@ dependencies = [ [[package]] name = "os_info" -version = "3.7.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" +checksum = "52a07930afc1bd77ac9e1101dc18d3fc4986c6568e939c31d1c26657eb0ccbf5" dependencies = [ "log", "serde", - "winapi", + "windows-sys 0.52.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 4f277279..4adef946 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,7 +60,7 @@ nu-ansi-term = "0.50.0" once_cell = "1.19.0" open = "5.1.2" # update os module config and tests when upgrading os_info -os_info = "3.7.0" +os_info = "3.8.0" path-slash = "0.2.1" pest = "2.7.8" pest_derive = "2.7.8" From 364e98b3e71a77cdaad16d26a1f75336871e4c14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 15:29:38 +0000 Subject: [PATCH 188/651] build(deps): update rust crate rust-ini to 0.21.0 --- Cargo.lock | 11 +++++++++-- Cargo.toml | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 80d1794f..00c35265 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2550,12 +2550,13 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rust-ini" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" +checksum = "0d625ed57d8f49af6cfa514c42e1a71fadcff60eb0b1c517ff82fe41aa025b41" dependencies = [ "cfg-if", "ordered-multimap", + "trim-in-place", ] [[package]] @@ -3231,6 +3232,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "trim-in-place" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc" + [[package]] name = "typenum" version = "1.17.0" diff --git a/Cargo.toml b/Cargo.toml index 4adef946..30d7dd64 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.9.0" regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } -rust-ini = "0.20.0" +rust-ini = "0.21.0" semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.114" From 13bfee163e4ede386e067bdcd4d7a72846c21ceb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 22:25:25 +0000 Subject: [PATCH 189/651] build(deps): update gitoxide crates --- Cargo.lock | 131 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 4 +- 2 files changed, 66 insertions(+), 69 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 00c35265..03eff8e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -885,9 +885,6 @@ name = "faster-hex" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" -dependencies = [ - "serde", -] [[package]] name = "fastrand" @@ -1061,9 +1058,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.59.0" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888ed07a42651c02060cc35eb0468f4eb99f617b1c02afc990d473b5697ba90" +checksum = "027b87106e07ab0965541f71dadd7db87be3f2b26feda3cce50028566a4dff0c" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1102,9 +1099,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.30.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a033a3bac3c31f7afc8aa713677e6296bb4d8801dc4882b8e4e6a163af8611bb" +checksum = "3eb3230825b44deba727ec2e9c886c4ab350d34333ae17555973ceb5e5261471" dependencies = [ "bstr", "gix-date", @@ -1116,27 +1113,27 @@ dependencies = [ [[package]] name = "gix-bitmap" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b6cd0f246180034ddafac9b00a112f19178135b21eb031b3f79355891f7325" +checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae" dependencies = [ "thiserror", ] [[package]] name = "gix-chunk" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003ec6deacf68076a0c157271a127e0bb2c031c1a41f7168cbe5d248d9b85c78" +checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52" dependencies = [ "thiserror", ] [[package]] name = "gix-commitgraph" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b27bf9d74c34eca0c5c676087b7309ea5b362809ebcaf7eb90c38b547dac3e9f" +checksum = "f7b102311085da4af18823413b5176d7c500fb2272eaf391cfa8635d8bcb12c4" dependencies = [ "bstr", "gix-chunk", @@ -1148,9 +1145,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f184a0b16d8872494b58c0f288996ec93b81d8df3a0f364a29e95a07fa61408d" +checksum = "62129c75e4b6229fe15fb9838cdc00c655e87105b651e4edd7c183fc5288b5d1" dependencies = [ "bstr", "gix-config-value", @@ -1169,9 +1166,9 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ab5d22bc21840f4be0ba2e78df947ba14d8ba6999ea798f86b5bdb999edd0c" +checksum = "fbd06203b1a9b33a78c88252a625031b094d9e1b647260070c25b09910c0a804" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1182,9 +1179,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17077f0870ac12b55d2eed9cb3f56549e40def514c8a783a0a79177a8a76b7c5" +checksum = "180b130a4a41870edfbd36ce4169c7090bca70e195da783dea088dd973daa59c" dependencies = [ "bstr", "itoa", @@ -1194,9 +1191,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3ebedca270c2a5144548cfc22902ad18499b8db0e67c6e96b0cbeb1530f129" +checksum = "78e605593c2ef74980a534ade0909c7dc57cca72baa30cbb67d2dda621f99ac4" dependencies = [ "bstr", "gix-hash", @@ -1206,9 +1203,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f740b01565662e5bca9cc454d70c4baf5d734a7eb0e0089786e1db8f3a314f6c" +checksum = "64bab49087ed3710caf77e473dc0efc54ca33d8ccc6441359725f121211482b1" dependencies = [ "bstr", "dunce", @@ -1222,9 +1219,9 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.38.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "184f7f7d4e45db0e2a362aeaf12c06c5e84817d0ef91d08e8e90170dad9f0b07" +checksum = "db4254037d20a247a0367aa79333750146a369719f0c6617fec4f5752cc62b37" dependencies = [ "crc32fast", "crossbeam-channel", @@ -1245,9 +1242,9 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4436e883d5769f9fb18677b8712b49228357815f9e4104174a6fc2d8461a437b" +checksum = "634b8a743b0aae03c1a74ee0ea24e8c5136895efac64ce52b3ea106e1c6f0613" dependencies = [ "gix-features", "gix-utils", @@ -1255,9 +1252,9 @@ dependencies = [ [[package]] name = "gix-glob" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c050a43e4e5601c99af40d7613957698e7a90a5b33f2a319c3842f9f9dc48b" +checksum = "682bdc43cb3c00dbedfcc366de2a849b582efd8d886215dbad2ea662ec156bb5" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1267,9 +1264,9 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0ed89cdc1dce26685c80271c4287077901de3c3dd90234d5fa47c22b2268653" +checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" dependencies = [ "faster-hex", "thiserror", @@ -1277,9 +1274,9 @@ dependencies = [ [[package]] name = "gix-hashtable" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe47d8c0887f82355e2e9e16b6cecaa4d5e5346a7a474ca78ff94de1db35a5b" +checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" dependencies = [ "gix-hash", "hashbrown 0.14.3", @@ -1288,9 +1285,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f914963133b6bc2ba81db86facae9a675ba83c38bae2f98ac9f8c0643a8aca" +checksum = "8b7e07051ef3db0b124e0065e14b04f275d91a320fb7fadc273422ca91b87282" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1326,9 +1323,9 @@ dependencies = [ [[package]] name = "gix-macros" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb" +checksum = "1dff438f14e67e7713ab9332f5fd18c8f20eb7eb249494f6c2bf170522224032" dependencies = [ "proc-macro2", "quote", @@ -1337,9 +1334,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.41.1" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfe92360506e7228240ee477fd440b82f071d5bb57fb988d7ed8ec17ba348631" +checksum = "03e9e56e790cdd548dee951019b4f0575a00cdd95092d34ceddeb3294b34ef08" dependencies = [ "bstr", "gix-actor", @@ -1356,9 +1353,9 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.58.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c84a97c644e99bb6178a867320862597f3ced3b22bd46948f31fcf4990f8a8" +checksum = "81b55378c719693380f66d9dd21ce46721eed2981d8789fc698ec1ada6fa176e" dependencies = [ "arc-swap", "gix-date", @@ -1376,9 +1373,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.48.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc338331abdf961c6cd19e77ef615fff62cf5da6551a3e9e8042fe621a52ac26" +checksum = "6391aeaa030ad64aba346a9f5c69bb1c4e5c6fb4411705b03b40b49d8614ec30" dependencies = [ "clru", "gix-chunk", @@ -1397,9 +1394,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e0b521a5c345b7cd6a81e3e6f634407360a038c8b74ba14c621124304251b8" +checksum = "23623cf0f475691a6d943f898c4d0b89f5c1a2a64d0f92bce0e0322ee6528783" dependencies = [ "bstr", "gix-trace", @@ -1410,9 +1407,9 @@ dependencies = [ [[package]] name = "gix-quote" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d1b102957d975c6eb56c2b7ad9ac7f26d117299b910812b2e9bf086ec43496d" +checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" dependencies = [ "bstr", "gix-utils", @@ -1421,9 +1418,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745f66ecfae5d6478c6f6018a556b5aa7567fcbd5781894ade9d4d0f173380aa" +checksum = "fd4aba68b925101cb45d6df328979af0681364579db889098a0de75b36c77b65" dependencies = [ "gix-actor", "gix-date", @@ -1443,9 +1440,9 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf9c85581664f38684b7463e133e5b4058992ee7a9f71642289d01f5c5dd2dec" +checksum = "dde848865834a54fe4d9b4573f15d0e9a68eaf3d061b42d3ed52b4b8acf880b2" dependencies = [ "bstr", "gix-hash", @@ -1457,9 +1454,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1d950b5926e7d2a6b84e5ba2955553b086c8aae843239004bec58526e2cf10" +checksum = "9e34196e1969bd5d36e2fbc4467d893999132219d503e23474a8ad2b221cb1e8" dependencies = [ "bstr", "gix-date", @@ -1473,9 +1470,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9b4d91dfc5c14fee61a28c65113ded720403b65a0f46169c0460f731a5d03c" +checksum = "e0a7d393ae814eeaae41a333c0ff684b243121cc61ccdc5bbe9897094588047d" dependencies = [ "gix-commitgraph", "gix-date", @@ -1488,9 +1485,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022592a0334bdf77c18c06e12a7c0eaff28845c37e73c51a3e37d56dd495fb35" +checksum = "fddc27984a643b20dd03e97790555804f98cf07404e0e552c0ad8133266a79a1" dependencies = [ "bitflags 2.4.1", "gix-path", @@ -1513,15 +1510,15 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b202d766a7fefc596e2cc6a89cda8ad8ad733aed82da635ac120691112a9b1" +checksum = "9b838b2db8f62c9447d483a4c28d251b67fee32741a82cb4d35e9eb4e9fdc5ab" [[package]] name = "gix-traverse" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc30c5b5e4e838683b59e1b0574ce6bc1c35916df9709aaab32bb7751daf08b" +checksum = "95aef84bc777025403a09788b1e4815c06a19332e9e5d87a955e1ed7da9bf0cf" dependencies = [ "gix-commitgraph", "gix-date", @@ -1535,9 +1532,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34db38a818cda121a8b9fea119e1136ba7fb4021b89f30a3449e9873bff84fe8" +checksum = "8f0b24f3ecc79a5a53539de9c2e99425d0ef23feacdcf3faac983aa9a2f26849" dependencies = [ "bstr", "gix-features", @@ -1549,9 +1546,9 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60157a15b9f14b11af1c6817ad7a93b10b50b4e5136d98a127c46a37ff16eeb6" +checksum = "0066432d4c277f9877f091279a597ea5331f68ca410efc874f0bdfb1cd348f92" dependencies = [ "fastrand 2.0.1", "unicode-normalization", @@ -1559,9 +1556,9 @@ dependencies = [ [[package]] name = "gix-validate" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac7cc36f496bd5d96cdca0f9289bb684480725d40db60f48194aa7723b883854" +checksum = "e39fc6e06044985eac19dd34d474909e517307582e462b2eb4c8fa51b6241545" dependencies = [ "bstr", "thiserror", diff --git a/Cargo.toml b/Cargo.toml index 30d7dd64..def7b944 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,8 +49,8 @@ dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.59.0", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.38.0", optional = true } +gix = { version = "0.60.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix-features = { version = "0.38.1", optional = true } indexmap = { version = "2.2.5", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix From 698572aa575508a4bdd0d3092c97f5a056dc50eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 14:19:13 +0000 Subject: [PATCH 190/651] build(deps): update rust crate clap to 4.5.3 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03eff8e9..025523f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -423,9 +423,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.2" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" +checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" dependencies = [ "clap_builder", "clap_derive", @@ -456,9 +456,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" dependencies = [ "heck", "proc-macro2", @@ -1594,9 +1594,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" diff --git a/Cargo.toml b/Cargo.toml index def7b944..93d974ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.35", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.2", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.5.3", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.1" dirs-next = "2.0.0" dunce = "1.0.4" From 335873fa90634a85cedd68eb04d24d8c3a1e76e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Mar 2024 10:24:56 +0000 Subject: [PATCH 191/651] build(deps): update rust crate os_info to 3.8.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 025523f7..dc26e1e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2136,9 +2136,9 @@ dependencies = [ [[package]] name = "os_info" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a07930afc1bd77ac9e1101dc18d3fc4986c6568e939c31d1c26657eb0ccbf5" +checksum = "6cbb46d5d01695d7a1fb8be5f0d1968bd2b2b8ba1d1b3e7062ce2a0593e57af1" dependencies = [ "log", "serde", diff --git a/Cargo.toml b/Cargo.toml index 93d974ca..a290e04f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,7 +60,7 @@ nu-ansi-term = "0.50.0" once_cell = "1.19.0" open = "5.1.2" # update os module config and tests when upgrading os_info -os_info = "3.8.0" +os_info = "3.8.1" path-slash = "0.2.1" pest = "2.7.8" pest_derive = "2.7.8" From acab1d483cb6d160bc6b54f457234d32e3956726 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 01:13:07 +0000 Subject: [PATCH 192/651] build(deps): update rust crate versions to 6.2.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc26e1e0..fe9ebc03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3368,9 +3368,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "versions" -version = "6.1.0" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37ff4899935ba747849dd9eeb27c0bdd0da0210236704b7e4681a6c7bd6f9c6" +checksum = "38a8931f8d167b6448076020e70b9de46dcf5ea1731212481a092d0071c4ac5b" dependencies = [ "itertools 0.12.0", "nom 7.1.3", diff --git a/Cargo.toml b/Cargo.toml index a290e04f..4c508d61 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -85,7 +85,7 @@ toml_edit = "0.22.6" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" -versions = "6.1.0" +versions = "6.2.0" which = "6.0.0" yaml-rust = "0.4.5" From 7a30163f69267510cd24d67a7440978cafa3e7b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 11:29:31 +0000 Subject: [PATCH 193/651] build(deps): update rust crate gix to 0.61.0 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fe9ebc03..862823c9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1058,9 +1058,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.60.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027b87106e07ab0965541f71dadd7db87be3f2b26feda3cce50028566a4dff0c" +checksum = "e4e0e59a44bf00de058ee98d6ecf3c9ed8f8842c1da642258ae4120d41ded8f7" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1099,9 +1099,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb3230825b44deba727ec2e9c886c4ab350d34333ae17555973ceb5e5261471" +checksum = "45c3a3bde455ad2ee8ba8a195745241ce0b770a8a26faae59fcf409d01b28c46" dependencies = [ "bstr", "gix-date", @@ -1285,9 +1285,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7e07051ef3db0b124e0065e14b04f275d91a320fb7fadc273422ca91b87282" +checksum = "549621f13d9ccf325a7de45506a3266af0d08f915181c5687abb5e8669bfd2e6" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1334,9 +1334,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e9e56e790cdd548dee951019b4f0575a00cdd95092d34ceddeb3294b34ef08" +checksum = "3d4f8efae72030df1c4a81d02dbe2348e748d9b9a11e108ed6efbd846326e051" dependencies = [ "bstr", "gix-actor", diff --git a/Cargo.toml b/Cargo.toml index 4c508d61..20bb4afa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.60.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix = { version = "0.61.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.1", optional = true } indexmap = { version = "2.2.5", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } From 49575e5a555bddbf91ef2e05fbfeedaca450a2f9 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Wed, 20 Mar 2024 10:56:20 +0100 Subject: [PATCH 194/651] build(deps): update toml crates (#5842) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 74 ++++++++++++++++++++++++------------------------ Cargo.toml | 4 +-- src/configure.rs | 20 +++++++------ 3 files changed, 51 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 862823c9..f6e37a47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -249,7 +249,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -284,7 +284,7 @@ checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -463,7 +463,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -802,7 +802,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -1108,7 +1108,7 @@ dependencies = [ "gix-utils", "itoa", "thiserror", - "winnow 0.6.0", + "winnow 0.6.5", ] [[package]] @@ -1161,7 +1161,7 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow 0.6.0", + "winnow 0.6.5", ] [[package]] @@ -1329,7 +1329,7 @@ checksum = "1dff438f14e67e7713ab9332f5fd18c8f20eb7eb249494f6c2bf170522224032" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -1348,7 +1348,7 @@ dependencies = [ "itoa", "smallvec", "thiserror", - "winnow 0.6.0", + "winnow 0.6.5", ] [[package]] @@ -1435,7 +1435,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror", - "winnow 0.6.0", + "winnow 0.6.5", ] [[package]] @@ -1955,7 +1955,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -2233,7 +2233,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -2395,9 +2395,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.74" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -2671,7 +2671,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -2704,7 +2704,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -2899,8 +2899,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.10", - "toml_edit 0.22.6", + "toml 0.8.12", + "toml_edit 0.22.8", "unicode-segmentation", "unicode-width", "urlencoding", @@ -2953,9 +2953,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.46" +version = "2.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -3085,7 +3085,7 @@ checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -3154,15 +3154,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.6", + "toml_edit 0.22.8", ] [[package]] @@ -3182,20 +3182,20 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap 2.2.5", "toml_datetime", - "winnow 0.5.31", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.22.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd" dependencies = [ "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.0", + "winnow 0.6.5", ] [[package]] @@ -3217,7 +3217,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] @@ -3428,7 +3428,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", "wasm-bindgen-shared", ] @@ -3450,7 +3450,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3687,18 +3687,18 @@ checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" [[package]] name = "winnow" -version = "0.5.31" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.6.0" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -3814,7 +3814,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.46", + "syn 2.0.53", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 20bb4afa..f68c4e76 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.2", optional = true } strsim = "0.11.0" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.10", features = ["preserve_order"] } -toml_edit = "0.22.6" +toml = { version = "0.8.12", features = ["preserve_order"] } +toml_edit = "0.22.8" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" diff --git a/src/configure.rs b/src/configure.rs index 9ce0be34..7c3600a8 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -10,7 +10,7 @@ use crate::context::Context; use crate::utils; use std::fs::File; use std::io::Write; -use toml_edit::Document; +use toml_edit::DocumentMut; #[cfg(not(windows))] const STD_EDITOR: &str = "vi"; @@ -29,7 +29,11 @@ pub fn update_configuration(context: &Context, name: &str, value: &str) { } } -fn handle_update_configuration(doc: &mut Document, name: &str, value: &str) -> Result<(), String> { +fn handle_update_configuration( + doc: &mut DocumentMut, + name: &str, + value: &str, +) -> Result<(), String> { let mut keys = name.split('.'); let first_key = keys.next().unwrap_or_default(); @@ -190,7 +194,7 @@ pub fn toggle_configuration(context: &Context, name: &str, key: &str) { } } -fn handle_toggle_configuration(doc: &mut Document, name: &str, key: &str) -> Result<(), String> { +fn handle_toggle_configuration(doc: &mut DocumentMut, name: &str, key: &str) -> Result<(), String> { if name.is_empty() || key.is_empty() { return Err("Empty table keys are not supported".to_owned()); } @@ -225,17 +229,17 @@ pub fn get_configuration(context: &Context) -> toml::Table { starship_config.config.unwrap_or_default() } -pub fn get_configuration_edit(context: &Context) -> Document { +pub fn get_configuration_edit(context: &Context) -> DocumentMut { let config_file_path = context.get_config_path_os(); let toml_content = StarshipConfig::read_config_content_as_str(&config_file_path); toml_content .unwrap_or_default() - .parse::() + .parse::() .expect("Failed to load starship config") } -pub fn write_configuration(context: &Context, doc: &Document) { +pub fn write_configuration(context: &Context, doc: &DocumentMut) { let config_path = context.get_config_path_os().unwrap_or_else(|| { eprintln!("config path required to write configuration"); process::exit(1); @@ -430,7 +434,7 @@ mod tests { assert_eq!(toml::Value::Table(expected_config), actual_config); } - fn create_doc() -> Document { + fn create_doc() -> DocumentMut { let config = concat!( " # comment\n", " [status] # comment\n", @@ -439,7 +443,7 @@ mod tests { "\n" ); - config.parse::().unwrap() + config.parse::().unwrap() } #[test] From 0e334e3e6c71eca140d36c112dc46a668e2920d8 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Wed, 20 Mar 2024 10:57:14 +0100 Subject: [PATCH 195/651] chore: fix upcoming rust 1.77 clippy issues and chrono deprecations (#5850) --- src/context.rs | 8 ++++---- src/context_env.rs | 2 +- src/modules/aws.rs | 25 +++++++++---------------- src/test/mod.rs | 5 ++++- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/context.rs b/src/context.rs index 2b999412..a24a9889 100644 --- a/src/context.rs +++ b/src/context.rs @@ -38,9 +38,9 @@ pub struct Context<'a> { /// The current working directory that starship is being called in. pub current_dir: PathBuf, - /// A logical directory path which should represent the same directory as current_dir, + /// A logical directory path which should represent the same directory as `current_dir`, /// though may appear different. - /// E.g. when navigating to a PSDrive in PowerShell, or a path without symlinks resolved. + /// E.g. when navigating to a `PSDrive` in `PowerShell`, or a path without symlinks resolved. pub logical_dir: PathBuf, /// A struct containing directory contents in a lookup-optimized format. @@ -61,10 +61,10 @@ pub struct Context<'a> { /// Width of terminal, or zero if width cannot be detected. pub width: usize, - /// A HashMap of environment variable mocks + /// A `HashMap` of environment variable mocks pub env: Env<'a>, - /// A HashMap of command mocks + /// A `HashMap` of command mocks #[cfg(test)] pub cmd: HashMap<&'a str, Option>, diff --git a/src/context_env.rs b/src/context_env.rs index 5e881951..764baf37 100644 --- a/src/context_env.rs +++ b/src/context_env.rs @@ -6,7 +6,7 @@ use std::ffi::OsString; #[derive(Default)] pub struct Env<'a> { - /// A HashMap of environment variable mocks + /// A `HashMap` of environment variable mocks #[cfg(test)] pub env: HashMap<&'a str, String>, diff --git a/src/modules/aws.rs b/src/modules/aws.rs index fa455862..ae5c35d7 100644 --- a/src/modules/aws.rs +++ b/src/modules/aws.rs @@ -684,15 +684,12 @@ credential_process = /opt/bin/awscreds-retriever #[test] fn expiration_date_set() { - use chrono::{DateTime, NaiveDateTime, SecondsFormat, Utc}; + use chrono::{DateTime, SecondsFormat, Utc}; let expiration_env_vars = ["AWS_SESSION_EXPIRATION", "AWS_CREDENTIAL_EXPIRATION"]; expiration_env_vars.iter().for_each(|env_var| { - let now_plus_half_hour: DateTime = DateTime::from_naive_utc_and_offset( - NaiveDateTime::from_timestamp_opt(chrono::Local::now().timestamp() + 1800, 0) - .unwrap(), - Utc, - ); + let now_plus_half_hour: DateTime = + DateTime::from_timestamp(chrono::Local::now().timestamp() + 1800, 0).unwrap(); let actual = ModuleRenderer::new("aws") .env("AWS_PROFILE", "astronauts") @@ -727,12 +724,10 @@ credential_process = /opt/bin/awscreds-retriever let credentials_path = dir.path().join("credentials"); let mut file = File::create(&credentials_path)?; - use chrono::{DateTime, NaiveDateTime, Utc}; + use chrono::{DateTime, Utc}; - let now_plus_half_hour: DateTime = DateTime::from_naive_utc_and_offset( - NaiveDateTime::from_timestamp_opt(chrono::Local::now().timestamp() + 1800, 0).unwrap(), - Utc, - ); + let now_plus_half_hour: DateTime = + DateTime::from_timestamp(chrono::Local::now().timestamp() + 1800, 0).unwrap(); let expiration_date = now_plus_half_hour.to_rfc3339_opts(chrono::SecondsFormat::Secs, true); @@ -800,12 +795,10 @@ aws_secret_access_key=dummy #[test] fn expiration_date_set_expired() { - use chrono::{DateTime, NaiveDateTime, SecondsFormat, Utc}; + use chrono::{DateTime, SecondsFormat, Utc}; - let now: DateTime = DateTime::from_naive_utc_and_offset( - NaiveDateTime::from_timestamp_opt(chrono::Local::now().timestamp() - 1800, 0).unwrap(), - Utc, - ); + let now: DateTime = + DateTime::from_timestamp(chrono::Local::now().timestamp() - 1800, 0).unwrap(); let symbol = "!!!"; diff --git a/src/test/mod.rs b/src/test/mod.rs index 9cbb749d..3bb44607 100644 --- a/src/test/mod.rs +++ b/src/test/mod.rs @@ -70,7 +70,9 @@ impl<'a> ModuleRenderer<'a> { T: Into, { self.context.current_dir = path.into(); - self.context.logical_dir = self.context.current_dir.clone(); + self.context + .logical_dir + .clone_from(&self.context.current_dir); self } @@ -184,6 +186,7 @@ pub fn fixture_repo(provider: FixtureProvider) -> io::Result { fs::OpenOptions::new() .create(true) .write(true) + .truncate(false) .open(path.path().join(checkout_db))? .sync_all()?; Ok(path) From aef1a3f275e7ec9095c4718ecf6a268abfe7794a Mon Sep 17 00:00:00 2001 From: David Knaack Date: Wed, 20 Mar 2024 11:00:50 +0100 Subject: [PATCH 196/651] feat(release): add winget arm64 push & repo sync (#5033) --- .github/workflows/release.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9fe2c080..d4d9f44f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -322,11 +322,16 @@ jobs: env: URL_64: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-x86_64-pc-windows-msvc.msi URL_32: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-i686-pc-windows-msvc.msi + URL_ARM: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-aarch64-pc-windows-msvc.zip steps: + # Publishing will fail if the repo is too far behind the upstream + - run: gh repo sync matchai/winget-pkgs + env: + GITHUB_TOKEN: ${{ secrets.GH_PAT }} - run: | $version = '${{ needs.release_please.outputs.tag_name }}'.replace('v', '') iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe - ./wingetcreate.exe update Starship.Starship -s -v $version -u $env:URL_64 $env:URL_32 -t ${{ secrets.GH_PAT }} + ./wingetcreate.exe update Starship.Starship -s -v $version -u $env:URL_64 $env:URL_32 $env:URL_ARM -t ${{ secrets.GH_PAT }} choco_update: name: Update Chocolatey Package From b8a812b93207da992ff8ae9f8b955bfa1252072b Mon Sep 17 00:00:00 2001 From: Mick Hohmann Date: Wed, 20 Mar 2024 22:47:32 +0100 Subject: [PATCH 197/651] feat(username): add detect_env_vars as option (#5833) * Added the option "detect_env_vars" to the `username` module with the same functionality as in the `hostname` module. * Fixed logic error and added test to catch it * build(deps): update dependency vitepress to ^1.0.0-rc.45 * build(deps): update rust crate shadow-rs to 0.27.1 * Added the option "detect_env_vars" to the `username` module with the same functionality as in the `hostname` module. * Fixed logic error and added test to catch it * Removed unused gix import * Removed unused gix import, again * Removed unused gix import. Next try --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/config-schema.json | 8 ++++ docs/config/README.md | 29 ++++++++++--- src/configs/username.rs | 2 + src/modules/username.rs | 88 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 117 insertions(+), 10 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index e2bade18..f293dd26 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1717,6 +1717,7 @@ }, "username": { "default": { + "detect_env_vars": [], "disabled": false, "format": "[$user]($style) in ", "show_always": false, @@ -5878,6 +5879,13 @@ "UsernameConfig": { "type": "object", "properties": { + "detect_env_vars": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, "format": { "default": "[$user]($style) in ", "type": "string" diff --git a/docs/config/README.md b/docs/config/README.md index 1c6f626a..34beb729 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -4357,6 +4357,7 @@ The module will be shown if any of the following conditions are met: - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4368,13 +4369,14 @@ these variables, one workaround is to set one of them with a dummy value. ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4385,6 +4387,8 @@ these variables, one workaround is to set one of them with a dummy value. ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4396,6 +4400,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). diff --git a/src/configs/username.rs b/src/configs/username.rs index 1dbcf4a3..807dad51 100644 --- a/src/configs/username.rs +++ b/src/configs/username.rs @@ -8,6 +8,7 @@ use serde::{Deserialize, Serialize}; )] #[serde(default)] pub struct UsernameConfig<'a> { + pub detect_env_vars: Vec<&'a str>, pub format: &'a str, pub style_root: &'a str, pub style_user: &'a str, @@ -18,6 +19,7 @@ pub struct UsernameConfig<'a> { impl<'a> Default for UsernameConfig<'a> { fn default() -> Self { UsernameConfig { + detect_env_vars: vec![], format: "[$user]($style) in ", style_root: "red bold", style_user: "yellow bold", diff --git a/src/modules/username.rs b/src/modules/username.rs index af3fa6e5..038bbd75 100644 --- a/src/modules/username.rs +++ b/src/modules/username.rs @@ -15,23 +15,29 @@ const USERNAME_ENV_VAR: &str = "USERNAME"; /// - The current user is root (UID = 0) [1] /// - The current user isn't the same as the one that is logged in (`$LOGNAME` != `$USER`) [2] /// - The user is currently connected as an SSH session (`$SSH_CONNECTION`) [3] +/// - The option `username.detect_env_vars` is set with a not negated environment variable [4] +/// Does not display the username: +/// - If the option `username.detect_env_vars` is set with a negated environment variable [A] pub fn module<'a>(context: &'a Context) -> Option> { let mut username = context.get_env(USERNAME_ENV_VAR)?; let mut module = context.new_module("username"); let config: UsernameConfig = UsernameConfig::try_load(module.config); + let has_detected_env_var = context.detect_env_vars(&config.detect_env_vars); let is_root = is_root_user(); if cfg!(target_os = "windows") && is_root { username = "Administrator".to_string(); } + let show_username = config.show_always || is_root // [1] || !is_login_user(context, &username) // [2] - || is_ssh_session(context); // [3] + || is_ssh_session(context) // [3] + || ( !config.detect_env_vars.is_empty() && has_detected_env_var ); // [4] - if !show_username { - return None; + if !show_username || !has_detected_env_var { + return None; // [A] } let parsed = StringFormatter::new(config.format).and_then(|formatter| { @@ -109,11 +115,69 @@ fn is_ssh_session(context: &Context) -> bool { #[cfg(test)] mod tests { + use gix::config::key; + use crate::test::ModuleRenderer; // TODO: Add tests for if root user (UID == 0) // Requires mocking + #[test] + fn ssh_with_empty_detect_env_vars() { + let actual = ModuleRenderer::new("username") + .env(super::USERNAME_ENV_VAR, "astronaut") + .env("SSH_CONNECTION", "192.168.223.17 36673 192.168.223.229 22") + // Test output should not change when run by root/non-root user + .config(toml::toml! { + [username] + style_root = "" + style_user = "" + detect_env_vars = [] + }) + .collect(); + + let expected = Some("astronaut in "); + assert_eq!(expected, actual.as_deref()); + } + + #[test] + fn ssh_with_matching_detect_env_vars() { + let actual = ModuleRenderer::new("username") + .env(super::USERNAME_ENV_VAR, "astronaut") + .env("SSH_CONNECTION", "192.168.223.17 36673 192.168.223.229 22") + .env("FORCE_USERNAME", "true") + // Test output should not change when run by root/non-root user + .config(toml::toml! { + [username] + style_root = "" + style_user = "" + detect_env_vars = ["FORCE_USERNAME"] + }) + .collect(); + + let expected = Some("astronaut in "); + assert_eq!(expected, actual.as_deref()); + } + + #[test] + fn ssh_with_matching_negated_detect_env_vars() { + let actual = ModuleRenderer::new("username") + .env(super::USERNAME_ENV_VAR, "astronaut") + .env("SSH_CONNECTION", "192.168.223.17 36673 192.168.223.229 22") + .env("NEGATED", "true") + // Test output should not change when run by root/non-root user + .config(toml::toml! { + [username] + style_root = "" + style_user = "" + detect_env_vars = ["!NEGATED"] + }) + .collect(); + + let expected = None; + assert_eq!(expected, actual.as_deref()); + } + #[test] fn no_env_variables() { let actual = ModuleRenderer::new("username").collect(); @@ -241,4 +305,22 @@ mod tests { assert_eq!(expected, actual.as_deref()); } + + #[test] + fn show_always_false() { + let actual = ModuleRenderer::new("username") + .env(super::USERNAME_ENV_VAR, "astronaut") + // Test output should not change when run by root/non-root user + .config(toml::toml! { + [username] + show_always = false + + style_root = "" + style_user = "" + }) + .collect(); + let expected = None; + + assert_eq!(expected, actual.as_deref()); + } } From d879317d513282e62d57347275911be042ee230d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 19:45:39 +0000 Subject: [PATCH 198/651] build(deps): update rust crate toml_edit to 0.22.9 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f6e37a47..842b9eec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2900,7 +2900,7 @@ dependencies = [ "tempfile", "terminal_size", "toml 0.8.12", - "toml_edit 0.22.8", + "toml_edit 0.22.9", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3162,7 +3162,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.8", + "toml_edit 0.22.9", ] [[package]] @@ -3187,9 +3187,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.8" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ "indexmap 2.2.5", "serde", diff --git a/Cargo.toml b/Cargo.toml index f68c4e76..e84dc2ce 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ strsim = "0.11.0" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.12", features = ["preserve_order"] } -toml_edit = "0.22.8" +toml_edit = "0.22.9" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" From 0e49f04a6b249090cf3703c5dac041a51e6bf530 Mon Sep 17 00:00:00 2001 From: Virgile Andreani Date: Wed, 20 Mar 2024 17:50:12 -0400 Subject: [PATCH 199/651] feat(quarto): Add Quarto module (#5820) Add Quarto module * Adapted from the Typst module --- .github/config-schema.json | 72 ++++++++++++++ docs/config/README.md | 33 +++++++ docs/public/presets/toml/no-empty-icons.toml | 3 + .../presets/toml/no-runtime-versions.toml | 3 + .../presets/toml/plain-text-symbols.toml | 3 + src/configs/mod.rs | 3 + src/configs/quarto.rs | 34 +++++++ src/configs/starship_root.rs | 1 + src/module.rs | 1 + src/modules/mod.rs | 3 + src/modules/quarto.rs | 93 +++++++++++++++++++ src/utils.rs | 4 + 12 files changed, 253 insertions(+) create mode 100644 src/configs/quarto.rs create mode 100644 src/modules/quarto.rs diff --git a/.github/config-schema.json b/.github/config-schema.json index f293dd26..f1f9c86b 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1365,6 +1365,27 @@ } ] }, + "quarto": { + "default": { + "detect_extensions": [ + "qmd" + ], + "detect_files": [ + "_quarto.yml" + ], + "detect_folders": [], + "disabled": false, + "format": "via [$symbol($version )]($style)", + "style": "bold #75AADB", + "symbol": "⨁ ", + "version_format": "v${raw}" + }, + "allOf": [ + { + "$ref": "#/definitions/QuartoConfig" + } + ] + }, "raku": { "default": { "detect_extensions": [ @@ -5046,6 +5067,57 @@ } ] }, + "QuartoConfig": { + "type": "object", + "properties": { + "format": { + "default": "via [$symbol($version )]($style)", + "type": "string" + }, + "version_format": { + "default": "v${raw}", + "type": "string" + }, + "symbol": { + "default": "⨁ ", + "type": "string" + }, + "style": { + "default": "bold #75AADB", + "type": "string" + }, + "disabled": { + "default": false, + "type": "boolean" + }, + "detect_extensions": { + "default": [ + "qmd" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_files": { + "default": [ + "_quarto.yml" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_folders": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "RakuConfig": { "type": "object", "properties": { diff --git a/docs/config/README.md b/docs/config/README.md index 34beb729..21343951 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -314,6 +314,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -3590,6 +3591,38 @@ python_binary = 'python3' detect_extensions = [] ``` +## Quarto + +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Example | Description | +| -------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + ## R The `rlang` module shows the currently installed version of [R](https://www.r-project.org/). The module will be shown if diff --git a/docs/public/presets/toml/no-empty-icons.toml b/docs/public/presets/toml/no-empty-icons.toml index 8917c0a1..174c9dcb 100644 --- a/docs/public/presets/toml/no-empty-icons.toml +++ b/docs/public/presets/toml/no-empty-icons.toml @@ -87,6 +87,9 @@ format = '(via [$symbol($version )]($style))' [python] format = '(via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style))' +[quarto] +format = '(via [$symbol($version )]($style))' + [raku] format = '(via [$symbol($version-$vm_version )]($style))' diff --git a/docs/public/presets/toml/no-runtime-versions.toml b/docs/public/presets/toml/no-runtime-versions.toml index a3ee88c8..df3a1ff4 100644 --- a/docs/public/presets/toml/no-runtime-versions.toml +++ b/docs/public/presets/toml/no-runtime-versions.toml @@ -91,6 +91,9 @@ format = 'via [$symbol]($style)' [python] format = 'via [$symbol]($style)' +[quarto] +format = 'via [$symbol]($style)' + [raku] format = 'via [$symbol]($style)' diff --git a/docs/public/presets/toml/plain-text-symbols.toml b/docs/public/presets/toml/plain-text-symbols.toml index db0957a1..3574a289 100644 --- a/docs/public/presets/toml/plain-text-symbols.toml +++ b/docs/public/presets/toml/plain-text-symbols.toml @@ -182,6 +182,9 @@ symbol = "purs " [python] symbol = "py " +[quarto] +symbol = "quarto " + [raku] symbol = "raku " diff --git a/src/configs/mod.rs b/src/configs/mod.rs index c2cf0a8d..591b350d 100644 --- a/src/configs/mod.rs +++ b/src/configs/mod.rs @@ -68,6 +68,7 @@ pub mod pijul_channel; pub mod pulumi; pub mod purescript; pub mod python; +pub mod quarto; pub mod raku; pub mod red; pub mod rlang; @@ -241,6 +242,8 @@ pub struct FullConfig<'a> { #[serde(borrow)] python: python::PythonConfig<'a>, #[serde(borrow)] + quarto: quarto::QuartoConfig<'a>, + #[serde(borrow)] raku: raku::RakuConfig<'a>, #[serde(borrow)] red: red::RedConfig<'a>, diff --git a/src/configs/quarto.rs b/src/configs/quarto.rs new file mode 100644 index 00000000..6fb1b92a --- /dev/null +++ b/src/configs/quarto.rs @@ -0,0 +1,34 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Deserialize, Serialize)] +#[cfg_attr( + feature = "config-schema", + derive(schemars::JsonSchema), + schemars(deny_unknown_fields) +)] +#[serde(default)] +pub struct QuartoConfig<'a> { + pub format: &'a str, + pub version_format: &'a str, + pub symbol: &'a str, + pub style: &'a str, + pub disabled: bool, + pub detect_extensions: Vec<&'a str>, + pub detect_files: Vec<&'a str>, + pub detect_folders: Vec<&'a str>, +} + +impl<'a> Default for QuartoConfig<'a> { + fn default() -> Self { + QuartoConfig { + format: "via [$symbol($version )]($style)", + version_format: "v${raw}", + symbol: "⨁ ", + style: "bold #75AADB", + disabled: false, + detect_extensions: vec!["qmd"], + detect_files: vec!["_quarto.yml"], + detect_folders: vec![], + } + } +} diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index 86fe7e75..7612a550 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -82,6 +82,7 @@ pub const PROMPT_ORDER: &[&str] = &[ "pulumi", "purescript", "python", + "quarto", "raku", "rlang", "red", diff --git a/src/module.rs b/src/module.rs index 0dcc0aad..3a8533f3 100644 --- a/src/module.rs +++ b/src/module.rs @@ -75,6 +75,7 @@ pub const ALL_MODULES: &[&str] = &[ "pulumi", "purescript", "python", + "quarto", "raku", "red", "rlang", diff --git a/src/modules/mod.rs b/src/modules/mod.rs index 57983cd1..a219cd0d 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -65,6 +65,7 @@ mod pijul_channel; mod pulumi; mod purescript; mod python; +mod quarto; mod raku; mod red; mod rlang; @@ -172,6 +173,7 @@ pub fn handle<'a>(module: &str, context: &'a Context) -> Option> { "pulumi" => pulumi::module(context), "purescript" => purescript::module(context), "python" => python::module(context), + "quarto" => quarto::module(context), "raku" => raku::module(context), "rlang" => rlang::module(context), "red" => red::module(context), @@ -292,6 +294,7 @@ pub fn description(module: &str) -> &'static str { "pulumi" => "The current username, stack, and installed version of Pulumi", "purescript" => "The currently installed version of PureScript", "python" => "The currently installed version of Python", + "quarto" => "The current installed version of quarto", "raku" => "The currently installed version of Raku", "red" => "The currently installed version of Red", "rlang" => "The currently installed version of R", diff --git a/src/modules/quarto.rs b/src/modules/quarto.rs new file mode 100644 index 00000000..25c72b4c --- /dev/null +++ b/src/modules/quarto.rs @@ -0,0 +1,93 @@ +use super::{Context, Module, ModuleConfig}; + +use crate::configs::quarto::QuartoConfig; +use crate::formatter::{StringFormatter, VersionFormatter}; + +/// Creates a module with the current Quarto version +pub fn module<'a>(context: &'a Context) -> Option> { + let mut module = context.new_module("quarto"); + let config = QuartoConfig::try_load(module.config); + + let is_quarto_project = context + .try_begin_scan()? + .set_files(&config.detect_files) + .set_extensions(&config.detect_extensions) + .set_folders(&config.detect_folders) + .is_match(); + + if !is_quarto_project { + return None; + } + + let parsed = StringFormatter::new(config.format).and_then(|formatter| { + formatter + .map_meta(|var, _| match var { + "symbol" => Some(config.symbol), + _ => None, + }) + .map_style(|variable| match variable { + "style" => Some(Ok(config.style)), + _ => None, + }) + .map(|variable| match variable { + "version" => { + let version = context + .exec_cmd("quarto", &["--version"])? + .stdout + .trim_end() + .to_owned(); + VersionFormatter::format_module_version( + module.get_name(), + &version, + config.version_format, + ) + .map(Ok) + } + _ => None, + }) + .parse(None, Some(context)) + }); + + module.set_segments(match parsed { + Ok(segments) => segments, + Err(error) => { + log::warn!("Error in module `quarto`:\n{}", error); + return None; + } + }); + + Some(module) +} + +#[cfg(test)] +mod tests { + use crate::test::ModuleRenderer; + use nu_ansi_term::Color; + use std::fs::File; + use std::io; + #[test] + fn read_quarto_not_present() -> io::Result<()> { + let dir = tempfile::tempdir()?; + + let actual = ModuleRenderer::new("quarto").path(dir.path()).collect(); + + let expected = None; + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn read_quarto_present() -> io::Result<()> { + let dir = tempfile::tempdir()?; + + File::create(dir.path().join("test.qmd"))?.sync_all()?; + + let actual = ModuleRenderer::new("quarto").path(dir.path()).collect(); + let expected = Some(format!( + "via {}", + Color::Rgb(117, 170, 219).bold().paint("⨁ v1.4.549 ") + )); + assert_eq!(expected, actual); + dir.close() + } +} diff --git a/src/utils.rs b/src/utils.rs index a0d53855..35cee76d 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -393,6 +393,10 @@ WebAssembly: unavailable stdout: String::from("Python 3.8.0\n"), stderr: String::default(), }), + "quarto --version" => Some(CommandOutput { + stdout: String::from("1.4.549\n"), + stderr: String::default(), + }), "R --version" => Some(CommandOutput { stdout: String::default(), stderr: String::from( From 938ea3c40145af68d8e28b2ef0275531f1123202 Mon Sep 17 00:00:00 2001 From: marcybell Date: Thu, 21 Mar 2024 00:57:26 +0300 Subject: [PATCH 200/651] feat: $gemset variable for Ruby module (#5429) * $gemset variable for Ruby module * typo * Added test for no GEM_HOME env set * Formatting * Uses `rvm current` for gemset, no more version num --- docs/config/README.md | 11 +++---- src/modules/ruby.rs | 68 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 5 deletions(-) diff --git a/docs/config/README.md b/docs/config/README.md index 21343951..0719540f 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -3772,11 +3772,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | -| -------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Example | Description | +| -------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string diff --git a/src/modules/ruby.rs b/src/modules/ruby.rs index 498fefc3..da056246 100644 --- a/src/modules/ruby.rs +++ b/src/modules/ruby.rs @@ -1,3 +1,5 @@ +use regex::Regex; + use super::{Context, Module, ModuleConfig}; use crate::configs::ruby::RubyConfig; @@ -45,6 +47,9 @@ pub fn module<'a>(context: &'a Context) -> Option> { config.version_format, ) .map(Ok), + "gemset" => { + format_rvm_gemset(&context.exec_cmd("rvm", &["current"])?.stdout).map(Ok) + } _ => None, }) .parse(None, Some(context)) @@ -81,10 +86,21 @@ fn format_ruby_version(ruby_version: &str, version_format: &str) -> Option Option { + let gemset_re = Regex::new(r"@(\S+)").unwrap(); + if let Some(gemset) = gemset_re.captures(current) { + let gemset_name = gemset.get(1)?.as_str(); + return Some(gemset_name.to_string()); + } + + None +} + #[cfg(test)] mod tests { use super::*; use crate::test::ModuleRenderer; + use crate::utils::CommandOutput; use nu_ansi_term::Color; use std::fs::File; use std::io; @@ -163,6 +179,58 @@ mod tests { dir.close() } + #[test] + fn rvm_gemset_active() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("any.rb"))?.sync_all()?; + + let actual = ModuleRenderer::new("ruby") + .path(dir.path()) + .cmd( + "rvm current", + Some(CommandOutput { + stdout: String::from("ruby-2.5.1@test\n"), + stderr: String::default(), + }), + ) + .config(toml::toml! { + [ruby] + format = "via [$symbol($version)@($gemset )]($style)" + version_format = "${raw}" + }) + .collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("💎 2.5.1@test "))); + + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn rvm_gemset_not_active() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("any.rb"))?.sync_all()?; + + let actual = ModuleRenderer::new("ruby") + .path(dir.path()) + .cmd( + "rvm current", + Some(CommandOutput { + // with no gemset, `rvm current` outputs an empty string + stdout: String::default(), + stderr: String::default(), + }), + ) + .config(toml::toml! { + [ruby] + format = "via [$symbol($version)(@$gemset) ]($style)" + }) + .collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("💎 v2.5.1 "))); + + assert_eq!(expected, actual); + dir.close() + } + #[test] fn test_format_ruby_version() { let config = RubyConfig::default(); From ab840439e326a80c53466c7b767d29be0112b9d2 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Wed, 20 Mar 2024 22:58:33 +0100 Subject: [PATCH 201/651] fix(status): fix pipestatus width calculation (#5036) closes #3162 Co-authored-by: flw --- src/modules/status.rs | 128 ++++++++++++++++++++++++++++++++---------- src/test/mod.rs | 11 ++++ 2 files changed, 109 insertions(+), 30 deletions(-) diff --git a/src/modules/status.rs b/src/modules/status.rs index 317e0cc4..6dfa168b 100644 --- a/src/modules/status.rs +++ b/src/modules/status.rs @@ -57,15 +57,15 @@ pub fn module<'a>(context: &'a Context) -> Option> { let segment_format = config.pipestatus_segment_format.unwrap_or(config.format); let segment_format_with_separator = [segment_format, config.pipestatus_separator].join(""); - // Create pipestatus string + // Create pipestatus segments let pipestatus = match pipestatus_status { - PipeStatusStatus::Pipe(pipestatus) => pipestatus + PipeStatusStatus::Pipe(ps) => ps .iter() .enumerate() .filter_map(|(i, ec)| { - format_exit_code( + let formatted = format_exit_code( ec.as_str(), - if i == pipestatus.len() - 1 { + if i == ps.len() - 1 { segment_format } else { &segment_format_with_separator @@ -73,20 +73,25 @@ pub fn module<'a>(context: &'a Context) -> Option> { None, &config, context, - ) - .ok() - .map(|segments| segments.into_iter().map(|s| s.to_string())) + ); + match formatted { + Ok(segments) => Some(segments), + Err(e) => { + log::warn!("Error parsing format string in `status.pipestatus_segment_format`: {e:?}"); + None + } + } }) .flatten() - .collect::(), - _ => String::new(), + .collect(), + _ => Vec::new(), }; let main_format = match pipestatus_status { PipeStatusStatus::Pipe(_) => config.pipestatus_format, _ => config.format, }; - let parsed = format_exit_code(exit_code, main_format, Some(&pipestatus), &config, context); + let parsed = format_exit_code(exit_code, main_format, Some(pipestatus), &config, context); module.set_segments(match parsed { Ok(segments) => segments, @@ -101,7 +106,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { fn format_exit_code<'a>( exit_code: &'a str, format: &'a str, - pipestatus: Option<&str>, + pipestatus: Option>, config: &'a StatusConfig, context: &'a Context, ) -> Result, StringFormatterError> { @@ -164,16 +169,17 @@ fn format_exit_code<'a>( "common_meaning" => Ok(common_meaning).transpose(), "signal_number" => Ok(signal_number.as_deref()).transpose(), "signal_name" => Ok(signal_name).transpose(), - "pipestatus" => { - let pipestatus = pipestatus.unwrap_or_else(|| { - // We might enter this case if pipestatus hasn't - // been processed yet, which means that it has been - // set in format - log::warn!("pipestatus variable is only available in pipestatus_format"); - "" - }); - Some(Ok(pipestatus)) + _ => None, + }) + .map_variables_to_segments(|variable| match variable { + "pipestatus" if pipestatus.is_none() => { + // We might enter this case if pipestatus hasn't + // been processed yet, which means that it has been + // set in format + log::warn!("pipestatus variable is only available in pipestatus_format"); + None } + "pipestatus" => pipestatus.clone().map(Ok), _ => None, }) .parse(None, Some(context)) @@ -779,16 +785,15 @@ mod tests { let pipe_exit_code = &[0, 1, 2]; let main_exit_code = 2; - let expected_style = Style::new().on(Color::Red).fg(Color::White).bold(); + let style = Style::new().on(Color::Red).fg(Color::White).bold(); + let sep_style = Style::new().on(Color::Green).fg(Color::White).italic(); let expected = Some(format!( - "{}{}{}{}{}{}{}", - expected_style.paint("["), - expected_style.paint("0"), - expected_style.paint("|"), - expected_style.paint("1"), - expected_style.paint("|"), - expected_style.paint("2"), - expected_style.paint("] => <2>"), + "{}{}{}{}{}", + style.paint("[0"), + sep_style.paint("|"), + style.paint("1"), + sep_style.paint("|"), + style.paint("2] => <2>"), )); let actual = ModuleRenderer::new("status") .config(toml::toml! { @@ -796,7 +801,7 @@ mod tests { format = "\\($status\\)" style = "fg:white bg:red bold" pipestatus = true - pipestatus_separator = "[|]($style)" + pipestatus_separator = "[|](fg:white bg:green italic)" pipestatus_format = "[\\[]($style)$pipestatus[\\] => <$status>]($style)" pipestatus_segment_format = "[$status]($style)" disabled = false @@ -806,4 +811,67 @@ mod tests { .collect(); assert_eq!(expected, actual); } + + #[test] + fn pipestatus_width() { + let pipe_exit_code = &[0, 1, 2]; + let main_exit_code = 2; + + let renderer = ModuleRenderer::new("status") + .config(toml::toml! { + format = "$fill$status" + [status] + style = "fg:white bg:red bold" + pipestatus = true + pipestatus_segment_format = "[$status](bg:blue fg:yellow)" + disabled = false + }) + .status(main_exit_code) + .pipestatus(pipe_exit_code) + .width(100); + let context = crate::modules::Context::from(renderer); + let actual = crate::print::get_prompt(context); + + let mut escaping = false; + let mut width = 0; + for c in actual.chars() { + if c == '\x1B' { + escaping = true; + } + if escaping { + escaping = !c.is_ascii_alphabetic(); + continue; + } + width += 1; + } + assert_eq!(width, 100); + } + + #[test] + fn pipestatus_segment_format_err() { + let pipe_exit_code = &[0, 1, 2]; + let main_exit_code = 2; + + let expected = Some(format!( + "{}", + Style::new() + .on(Color::Red) + .fg(Color::White) + .bold() + .paint("[] => <2>"), + )); + let actual = ModuleRenderer::new("status") + .config(toml::toml! { + [status] + style = "fg:white bg:red bold" + pipestatus = true + pipestatus_format = "[\\[]($style)$pipestatus[\\] => <$status>]($style)" + pipestatus_segment_format = "${" + disabled = false + }) + .status(main_exit_code) + .pipestatus(pipe_exit_code) + .collect(); + assert_eq!(expected, actual); + } } diff --git a/src/test/mod.rs b/src/test/mod.rs index 3bb44607..230e4cd8 100644 --- a/src/test/mod.rs +++ b/src/test/mod.rs @@ -134,6 +134,11 @@ impl<'a> ModuleRenderer<'a> { self } + pub fn width(mut self, width: usize) -> Self { + self.context.width = width; + self + } + #[cfg(feature = "battery")] pub fn battery_info_provider( mut self, @@ -164,6 +169,12 @@ impl<'a> ModuleRenderer<'a> { } } +impl<'a> From> for Context<'a> { + fn from(renderer: ModuleRenderer<'a>) -> Self { + renderer.context + } +} + #[derive(Clone, Copy)] pub enum FixtureProvider { Fossil, From ae4618996b624d32b7d3e7cf4e5ecde2b174e78c Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Thu, 21 Mar 2024 15:45:06 +0900 Subject: [PATCH 202/651] Update sponsors --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 2c87fd81..ed47264b 100644 --- a/README.md +++ b/README.md @@ -433,10 +433,6 @@ Please check out these previous works that helped inspire the creation of starsh Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon From d308e918ee014f4ca9976683e79e819afd8160f7 Mon Sep 17 00:00:00 2001 From: Texas Toland Date: Thu, 21 Mar 2024 06:38:38 -0500 Subject: [PATCH 203/651] fix(nu): continuation prompt not being displayed correctly (#5851) Resolve #5847 by initializing `$env.STARSHIP_SHELL` before calling `starship` Most minimal change possible. Other simplification are possible but not know to be backwards compatible. Also considered `with-env` or `STARSHIP_SHELL=nu starship` but they'd be worse. Happy to reformat indentation if desired. --- src/init/starship.nu | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/init/starship.nu b/src/init/starship.nu index 0601e180..762569a3 100644 --- a/src/init/starship.nu +++ b/src/init/starship.nu @@ -2,8 +2,7 @@ # - overlay which can be loaded with `overlay use starship.nu` # - module which can be used with `use starship.nu` # - script which can be used with `source starship.nu` -export-env { load-env { - STARSHIP_SHELL: "nu" +export-env { $env.STARSHIP_SHELL = "nu"; load-env { STARSHIP_SESSION_KEY: (random chars -l 16) PROMPT_MULTILINE_INDICATOR: ( ^::STARSHIP:: prompt --continuation From df65b2155f92c03d07cabbcee6c92104a878c963 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Thu, 21 Mar 2024 12:39:28 +0100 Subject: [PATCH 204/651] feat(os): add new os symbols (#5849) --- .github/config-schema.json | 12 ++++++++++++ docs/config/README.md | 6 ++++++ docs/public/presets/toml/nerd-font-symbols.toml | 4 ++++ docs/public/presets/toml/plain-text-symbols.toml | 6 ++++++ src/configs/os.rs | 7 ++++++- src/modules/os.rs | 6 +++++- 6 files changed, 39 insertions(+), 2 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index f1f9c86b..743f00ed 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1165,6 +1165,8 @@ "format": "[$symbol]($style)", "style": "bold white", "symbols": { + "AIX": "➿ ", + "AlmaLinux": "💠 ", "Alpaquita": "🔔 ", "Alpine": "🏔️ ", "Amazon": "🙂 ", @@ -1182,6 +1184,7 @@ "Gentoo": "🗜️ ", "HardenedBSD": "🛡️ ", "Illumos": "🐦 ", + "Kali": "🐉 ", "Linux": "🐧 ", "Mabox": "📦 ", "Macos": "🍎 ", @@ -1199,10 +1202,13 @@ "RedHatEnterprise": "🎩 ", "Redhat": "🎩 ", "Redox": "🧪 ", + "RockyLinux": "💠 ", "SUSE": "🦎 ", "Solus": "⛵ ", "Ubuntu": "🎯 ", + "Ultramarine": "🔷 ", "Unknown": "❓ ", + "Void": " ", "Windows": "🪟 ", "openEuler": "🦉 ", "openSUSE": "🦎 " @@ -4670,6 +4676,8 @@ }, "symbols": { "default": { + "AIX": "➿ ", + "AlmaLinux": "💠 ", "Alpaquita": "🔔 ", "Alpine": "🏔️ ", "Amazon": "🙂 ", @@ -4687,6 +4695,7 @@ "Gentoo": "🗜️ ", "HardenedBSD": "🛡️ ", "Illumos": "🐦 ", + "Kali": "🐉 ", "Linux": "🐧 ", "Mabox": "📦 ", "Macos": "🍎 ", @@ -4704,10 +4713,13 @@ "RedHatEnterprise": "🎩 ", "Redhat": "🎩 ", "Redox": "🧪 ", + "RockyLinux": "💠 ", "SUSE": "🦎 ", "Solus": "⛵ ", "Ubuntu": "🎯 ", + "Ultramarine": "🔷 ", "Unknown": "❓ ", + "Void": " ", "Windows": "🪟 ", "openEuler": "🦉 ", "openSUSE": "🦎 " diff --git a/docs/config/README.md b/docs/config/README.md index 0719540f..e7c231fc 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -3173,7 +3173,9 @@ If you would like an operating system to be added, feel free to open a [feature ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3190,6 +3192,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3208,11 +3211,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/public/presets/toml/nerd-font-symbols.toml b/docs/public/presets/toml/nerd-font-symbols.toml index 540a4fc3..704b39d1 100644 --- a/docs/public/presets/toml/nerd-font-symbols.toml +++ b/docs/public/presets/toml/nerd-font-symbols.toml @@ -88,6 +88,7 @@ symbol = " " [os.symbols] Alpaquita = " " Alpine = " " +AlmaLinux = " " Amazon = " " Android = " " Arch = " " @@ -103,6 +104,7 @@ Garuda = "󰛓 " Gentoo = " " HardenedBSD = "󰞌 " Illumos = "󰈸 " +Kali = " " Linux = " " Mabox = " " Macos = " " @@ -119,11 +121,13 @@ Pop = " " Raspbian = " " Redhat = " " RedHatEnterprise = " " +RockyLinux = " " Redox = "󰀘 " Solus = "󰠳 " SUSE = " " Ubuntu = " " Unknown = " " +Void = " " Windows = "󰍲 " [package] diff --git a/docs/public/presets/toml/plain-text-symbols.toml b/docs/public/presets/toml/plain-text-symbols.toml index 3574a289..90577451 100644 --- a/docs/public/presets/toml/plain-text-symbols.toml +++ b/docs/public/presets/toml/plain-text-symbols.toml @@ -119,7 +119,9 @@ symbol = "ml " symbol = "opa " [os.symbols] +AIX = "aix " Alpaquita = "alq " +AlmaLinux = "alma " Alpine = "alp " Amazon = "amz " Android = "andr " @@ -136,6 +138,7 @@ Garuda = "garu " Gentoo = "gent " HardenedBSD = "hbsd " Illumos = "lum " +Kali = "kali " Linux = "lnx " Mabox = "mbox " Macos = "mac " @@ -154,11 +157,14 @@ Pop = "pop " Raspbian = "rasp " Redhat = "rhl " RedHatEnterprise = "rhel " +Rocky = "rky " Redox = "redox " Solus = "sol " SUSE = "suse " Ubuntu = "ubnt " +Ultramarine = "ultm " Unknown = "unk " +Void = "void " Windows = "win " [package] diff --git a/src/configs/os.rs b/src/configs/os.rs index 84a5e0e4..5742a835 100644 --- a/src/configs/os.rs +++ b/src/configs/os.rs @@ -28,7 +28,9 @@ impl<'a> Default for OSConfig<'a> { format: "[$symbol]($style)", style: "bold white", symbols: indexmap! { + Type::AIX => "➿ ", Type::Alpaquita => "🔔 ", + Type::AlmaLinux => "💠 ", Type::Alpine => "🏔️ ", Type::Amazon => "🙂 ", Type::Android => "🤖 ", @@ -45,6 +47,7 @@ impl<'a> Default for OSConfig<'a> { Type::Gentoo => "🗜️ ", Type::HardenedBSD => "🛡️ ", Type::Illumos => "🐦 ", + Type::Kali => "🐉 ", Type::Linux => "🐧 ", Type::Mabox => "📦 ", Type::Macos => "🍎 ", @@ -63,11 +66,14 @@ impl<'a> Default for OSConfig<'a> { Type::Raspbian => "🍓 ", Type::Redhat => "🎩 ", Type::RedHatEnterprise => "🎩 ", + Type::RockyLinux => "💠 ", Type::Redox => "🧪 ", Type::Solus => "⛵ ", Type::SUSE => "🦎 ", Type::Ubuntu => "🎯 ", + Type::Ultramarine => "🔷 ", Type::Unknown => "❓ ", + Type::Void => " ", Type::Windows => "🪟 ", // Future symbols. //aosc => " ", @@ -79,7 +85,6 @@ impl<'a> Default for OSConfig<'a> { //mandriva => " ", //sabayon => " ", //slackware => " ", - //void => " ", //solaris => " ", }, disabled: true, diff --git a/src/modules/os.rs b/src/modules/os.rs index cbc9d1e0..93b83dc7 100644 --- a/src/modules/os.rs +++ b/src/modules/os.rs @@ -331,12 +331,13 @@ mod tests { // - dosc/.vuepress/public/presets/toml/nerd-font-symbols.toml // - .github/config-schema.json let _ = |t: Type| match t { + Type::AIX => "➿ ", Type::Alpaquita => "🔔 ", Type::Alpine => "🏔️ ", Type::Amazon => "🙂 ", Type::Android => "🤖 ", Type::Arch | Type::Artix => "🎗️ ", - Type::CentOS => "💠 ", + Type::CentOS | Type::AlmaLinux | Type::RockyLinux => "💠 ", Type::Debian => "🌀 ", Type::DragonFly => "🐉 ", Type::Emscripten => "🔗 ", @@ -347,6 +348,7 @@ mod tests { Type::Gentoo => "🗜️ ", Type::HardenedBSD => "🛡️ ", Type::Illumos => "🐦 ", + Type::Kali => "🐉 ", Type::Linux => "🐧 ", Type::Mabox => "📦 ", Type::Macos => "🍎 ", @@ -369,7 +371,9 @@ mod tests { Type::Solus => "⛵ ", Type::SUSE => "🦎 ", Type::Ubuntu => "🎯 ", + Type::Ultramarine => "🔷 ", Type::Unknown => "❓ ", + Type::Void => " ", Type::Windows => "🪟 ", _ => "", }; From e39e73190778f5c0ce58b898cec99ec799ec4854 Mon Sep 17 00:00:00 2001 From: Alper Cugun Date: Thu, 21 Mar 2024 12:41:20 +0100 Subject: [PATCH 205/651] docs(bun): Add nodejs override to bun config documentation (#5834) --- docs/config/README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/config/README.md b/docs/config/README.md index e7c231fc..47f45676 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -645,7 +645,9 @@ By default the module will be shown if any of the following conditions are met: *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -654,6 +656,15 @@ By default the module will be shown if any of the following conditions are met: format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default From 2da45e79842b4d8c8a1a2606cfbb1b965ce9dcd9 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Thu, 21 Mar 2024 20:42:05 +0900 Subject: [PATCH 206/651] docs(i18n): new Crowdin updates (#5818) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (Arabic) * New translations readme.md (Arabic) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Italian) * New translations readme.md (Italian) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Dutch) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Norwegian) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Portuguese) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Turkish) * New translations readme.md (Turkish) * New translations readme.md (Turkish) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Vietnamese) * New translations readme.md (Vietnamese) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Indonesian) * New translations readme.md (Indonesian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Bengali) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Indonesian) * New translations readme.md (French) * New translations readme.md (Bengali) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Indonesian) * New translations readme.md (Indonesian) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Indonesian) * New translations readme.md (Dutch) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Dutch) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (French) * New translations readme.md (Ukrainian) * New translations readme.md (Spanish) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (French) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) --- docs/ar-SA/README.md | 23 ++--- docs/ar-SA/config/README.md | 100 +++++++++++++------- docs/ar-SA/guide/README.md | 10 +- docs/ar-SA/installing/README.md | 2 +- docs/bn-BD/README.md | 23 ++--- docs/bn-BD/config/README.md | 100 +++++++++++++------- docs/bn-BD/guide/README.md | 12 +-- docs/ckb-IR/README.md | 23 ++--- docs/ckb-IR/config/README.md | 100 +++++++++++++------- docs/ckb-IR/guide/README.md | 8 +- docs/de-DE/README.md | 27 +++--- docs/de-DE/config/README.md | 104 ++++++++++++++------- docs/de-DE/guide/README.md | 12 +-- docs/de-DE/installing/README.md | 2 +- docs/es-ES/README.md | 23 ++--- docs/es-ES/advanced-config/README.md | 2 +- docs/es-ES/config/README.md | 132 +++++++++++++++++---------- docs/es-ES/guide/README.md | 10 +- docs/fr-FR/README.md | 23 ++--- docs/fr-FR/advanced-config/README.md | 10 +- docs/fr-FR/config/README.md | 103 ++++++++++++++------- docs/fr-FR/guide/README.md | 10 +- docs/fr-FR/installing/README.md | 2 +- docs/id-ID/README.md | 25 ++--- docs/id-ID/advanced-config/README.md | 2 +- docs/id-ID/config/README.md | 102 ++++++++++++++------- docs/id-ID/guide/README.md | 12 +-- docs/id-ID/installing/README.md | 8 +- docs/it-IT/README.md | 23 ++--- docs/it-IT/config/README.md | 102 ++++++++++++++------- docs/it-IT/guide/README.md | 6 +- docs/it-IT/installing/README.md | 2 +- docs/ja-JP/README.md | 23 ++--- docs/ja-JP/config/README.md | 102 ++++++++++++++------- docs/ja-JP/guide/README.md | 10 +- docs/ja-JP/installing/README.md | 2 +- docs/ko-KR/README.md | 25 ++--- docs/ko-KR/advanced-config/README.md | 2 +- docs/ko-KR/config/README.md | 100 +++++++++++++------- docs/ko-KR/guide/README.md | 10 +- docs/nl-NL/README.md | 23 ++--- docs/nl-NL/config/README.md | 100 +++++++++++++------- docs/nl-NL/guide/README.md | 40 ++++---- docs/no-NO/README.md | 23 ++--- docs/no-NO/config/README.md | 100 +++++++++++++------- docs/no-NO/guide/README.md | 10 +- docs/pl-PL/README.md | 23 ++--- docs/pl-PL/config/README.md | 100 +++++++++++++------- docs/pl-PL/guide/README.md | 10 +- docs/pl-PL/installing/README.md | 2 +- docs/pt-BR/README.md | 23 ++--- docs/pt-BR/advanced-config/README.md | 2 +- docs/pt-BR/config/README.md | 108 +++++++++++++++------- docs/pt-BR/faq/README.md | 2 +- docs/pt-BR/guide/README.md | 10 +- docs/pt-BR/installing/README.md | 2 +- docs/pt-PT/README.md | 23 ++--- docs/pt-PT/config/README.md | 100 +++++++++++++------- docs/pt-PT/guide/README.md | 10 +- docs/ru-RU/README.md | 23 ++--- docs/ru-RU/config/README.md | 102 ++++++++++++++------- docs/ru-RU/guide/README.md | 10 +- docs/tr-TR/README.md | 23 ++--- docs/tr-TR/advanced-config/README.md | 2 +- docs/tr-TR/config/README.md | 100 +++++++++++++------- docs/tr-TR/guide/README.md | 10 +- docs/tr-TR/installing/README.md | 2 +- docs/uk-UA/README.md | 23 ++--- docs/uk-UA/advanced-config/README.md | 2 +- docs/uk-UA/config/README.md | 86 ++++++++++++----- docs/uk-UA/faq/README.md | 2 +- docs/uk-UA/guide/README.md | 10 +- docs/vi-VN/README.md | 23 ++--- docs/vi-VN/config/README.md | 102 ++++++++++++++------- docs/vi-VN/guide/README.md | 10 +- docs/vi-VN/installing/README.md | 2 +- docs/zh-CN/README.md | 23 ++--- docs/zh-CN/advanced-config/README.md | 2 +- docs/zh-CN/config/README.md | 104 ++++++++++++++------- docs/zh-CN/guide/README.md | 10 +- docs/zh-CN/installing/README.md | 2 +- docs/zh-TW/README.md | 23 ++--- docs/zh-TW/config/README.md | 102 ++++++++++++++------- docs/zh-TW/guide/README.md | 10 +- docs/zh-TW/installing/README.md | 2 +- 85 files changed, 1836 insertions(+), 1102 deletions(-) diff --git a/docs/ar-SA/README.md b/docs/ar-SA/README.md index 3d4d006f..28884f71 100644 --- a/docs/ar-SA/README.md +++ b/docs/ar-SA/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: التخصيص البسيط و السريع و الغير محدود لي ال"shell"! actions: - - theme: brand + - + theme: brand text: البدء مع Starship ← link: ./guide/ features: - - + - title: التوافق أولاً details: يعمل على أكثر موجهات الأوامر شيوعاً في أكثر نظم التشغيل شيوعاً. استخدمه في كل مكان! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: قابل للتخصيص details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### المتطلبات الأساسية @@ -58,6 +57,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/ar-SA/config/README.md b/docs/ar-SA/config/README.md index ca6c57ff..50bab597 100644 --- a/docs/ar-SA/config/README.md +++ b/docs/ar-SA/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | الافتراضي | الوصف | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | الافتراضي | الوصف | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | الوصف | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | الافتراضي | الوصف | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | مثال | الوصف | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | مثال | الوصف | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | مثال | الوصف | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | الافتراضي | الوصف | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | الافتراضي | الوصف | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### مثال +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/ar-SA/guide/README.md b/docs/ar-SA/guide/README.md index 52335d7a..c10cf9a8 100644 --- a/docs/ar-SA/guide/README.md +++ b/docs/ar-SA/guide/README.md @@ -40,11 +40,11 @@

    - الموقع + الموقع · التثبيت · - الإعدادات + الإعدادات

    @@ -171,7 +171,7 @@ - **Easy:** سريع التثبيت – استخدمها في دقائق معدودة.

    -تصفّح مستندات Starship  ▶ +تصفّح مستندات Starship  ▶

    @@ -431,10 +431,6 @@ If you're looking to further customize Starship: Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/ar-SA/installing/README.md b/docs/ar-SA/installing/README.md index fa8fd67e..94165355 100644 --- a/docs/ar-SA/installing/README.md +++ b/docs/ar-SA/installing/README.md @@ -5,7 +5,7 @@ 1. ثبت ملفات **starship** على جهازك 1. تنبيه موجه الأوامر بإن يقوم بجعل سطر الأوامر ل starship وذلك بتعديل كود الإبتداء -غالبية المستخدمين [الصفحة الرئيسية ](../guide/#🚀-installation) سوف تلبي احتياجاتهم. لكن، من أجل الاستخدام المتقدم، هناك حاجة لتوجيهات أخرى. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. لكن، من أجل الاستخدام المتقدم، هناك حاجة لتوجيهات أخرى. هناك العديد من الحالات التي لا تلبي المعلومات في ملف README.md احتياجها ولذلك هذه بعض إرشادات التثبيت الإضافية مقدمة من مجتمع starship. إذا كانت لديك ملاحظة وقمت بحلها ولم تجد هذا الحل لها ضمن الحلول التالية، الرجاء أضفها هنا! diff --git a/docs/bn-BD/README.md b/docs/bn-BD/README.md index d467d2fd..a9d66601 100644 --- a/docs/bn-BD/README.md +++ b/docs/bn-BD/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: আপনার টার্মিনাল এর জন্য একটি সহজ, প্রচণ্ড দ্রুত এবং অশেষভাবে কাস্টমাইজ করার মতো সুবিধাসম্পন্ন একটি প্রম্প্ট! actions: - - theme: brand + - + theme: brand text: Get Started → link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### পূর্বশর্ত @@ -58,6 +57,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: আপনার Nushell env ফাইলের (Nushell এ `$nu.env-path` কমান্ডটি রান করে ফাইলটি খুঁজে বের করুন) শেষে নিম্নলিখিত লাইনগুলি যোগ করুন: + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/bn-BD/config/README.md b/docs/bn-BD/config/README.md index 328ab8c4..7b4f5106 100644 --- a/docs/bn-BD/config/README.md +++ b/docs/bn-BD/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Example | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/bn-BD/guide/README.md b/docs/bn-BD/guide/README.md index 96c49a1a..c96afd38 100644 --- a/docs/bn-BD/guide/README.md +++ b/docs/bn-BD/guide/README.md @@ -40,11 +40,11 @@

    - ওয়েবসাইট - · + ওয়েবসাইট + · ইন্সটল · - কনফিগ + কনফিগ

    @@ -171,7 +171,7 @@ - **সহজ:** অনায়াসে ইন্সটল করুন – মিনিটের মধ্যে ব্যবহার শুরু করে দিন ।

    -Starship এর ডকুমেন্টেশন ঘুরে দেখুন  ▶ +Starship এর ডকুমেন্টেশন ঘুরে দেখুন  ▶

    @@ -431,10 +431,6 @@ eval "$(starship init zsh)" [একজন স্পনসর হয়ে](https://github.com/sponsors/starship) এই প্রোজেক্টটিকে আর্থিক ভাবে সহায়তা করুন । আপনার নাম অথবা লোগো নিম্নে দেখা যাবে আপনার ওয়েবসাইট এর লিঙ্ক সহ । -**সমর্থক স্তর** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/ckb-IR/README.md b/docs/ckb-IR/README.md index 7a00da5f..13fa363b 100644 --- a/docs/ckb-IR/README.md +++ b/docs/ckb-IR/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: promptـێکی سوکەڵە، خێرا، و بێسنور دڵخوازکراو بۆ هەر شێڵێک! actions: - - theme: brand + - + theme: brand text: دەستپێبکە ← link: ./guide/ features: - - + - title: سەرەتا گونجان details: کاردەکات لەسەر زۆربەی شێڵە باوەکان لەسەر زۆربەی سیستەمە باوەکان. لە هەموو شوێنێک بەکاری بهێنە! - - + - title: Rust لە پشتە details: باشترینی هاوتاکانی لە خێرایی و سەلامەتی Rust بەکارئەهێنێ بۆ ئەوەی promptـەکەت خێراترین و پشت پێبەستراوین بێ. - - + - title: دڵخوازکراو details: هەموو وردەکارییەکی دڵخواز ئەکرێ بەوجۆرەی حەزت لێیە، بۆ ئەوەی promptـەکە سوکەڵە بێ و پڕ تایبەتمەندی بێت بەوجۆرەی حەزت لێیە ببێ. footer: لەژێر مۆڵەتی ISCـە | مافی پارێزراوە © 2019-ئێستا بەژداریکەرانی Starship @@ -24,12 +25,10 @@ metaTitle: "Starship: یەکێ لە Promptـە شێڵ نەناسەکان" description: 'Starship: یەکێ لە promptـە سوکەڵە، خێرا، و بێسنور دڵخوازکراوەکان بۆ هەر شێڵێک! ئەو زانیارییانە پشان دەدات کە پێویستە، لەوکاتەیا بە ئارامی و سوکەڵەیی ئەمێنێتەوە. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell.' --- -

    - -
    + ### پێشمەرجەکان @@ -58,6 +57,7 @@ description: 'Starship: یەکێ لە promptـە سوکەڵە، خێرا، و ب ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: 'Starship: یەکێ لە promptـە سوکەڵە، خێرا، و ب ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/ckb-IR/config/README.md b/docs/ckb-IR/config/README.md index 63ccc62b..27cfd5a3 100644 --- a/docs/ckb-IR/config/README.md +++ b/docs/ckb-IR/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | گۆڕاو | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| گۆڕاو | نموونە | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| گۆڕاو | نموونە | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| گۆڕاو | نموونە | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### نموونە +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/ckb-IR/guide/README.md b/docs/ckb-IR/guide/README.md index 79964b17..ec24904f 100644 --- a/docs/ckb-IR/guide/README.md +++ b/docs/ckb-IR/guide/README.md @@ -40,7 +40,7 @@

    - ماڵپەڕ · دامەزراندن · رێکخستن + ماڵپەڕ · دامەزراندن · رێکخستن

    @@ -167,7 +167,7 @@ - **ئاسان:** خێرا لە دامەزراندن – دەست ئەکەیت بە بەکارهێنانی لە چەند خولەکێکدا.

    -بەڵگەنامەکانی Starship بگەڕێ  ◀ +بەڵگەنامەکانی Starship بگەڕێ  ◀

    @@ -427,10 +427,6 @@ If you're looking to further customize Starship: Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    ئایکۆنی مووشەکی Starship diff --git a/docs/de-DE/README.md b/docs/de-DE/README.md index f657670c..4230f5ab 100644 --- a/docs/de-DE/README.md +++ b/docs/de-DE/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null - tagline: Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell! + text: + tagline: Der minimalistische, super schnelle und unendlich anpassbare Prompt für jede Shell! actions: - - theme: brand + - + theme: brand text: Loslegen → - link: ./guide/ + link: ./de-DE/guide/ features: - - + - title: Kompatibel details: Läuft mit den beliebtesten Shells auf den beliebtesten Betriebssystemen. Überall einsetzbar! - - + - title: Rust-Powered details: Bringt die Schnelligkeit und Sicherheit von Rust in deine Shell-Prompt. - - + - title: Individualisierbar details: Jedes noch so kleine Detail kann nach Deinen Wünschen angepasst werden, um die Eingabeaufforderung so minimal oder funktionsreich zu gestalten, wie Du es möchtest. footer: ICS lizenziert | Copyright © 2019-heute Starship-Mitwirkende @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship ist eine minimale, super schnelle, und extrem anpassbare Prompt für jede Shell! Sie zeigt die Information, die man benötigt an, während sie schnell und minimal bleibt. Schnell-Installation verfügbar für Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, und PowerShell. --- -

    - -
    + ### Voraussetzungen @@ -58,6 +57,7 @@ description: Starship ist eine minimale, super schnelle, und extrem anpassbare P ```sh brew install starship ``` + Mit [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship ist eine minimale, super schnelle, und extrem anpassbare P ::: Füge folgendes zum Ende deiner Nushell env Datei hinzu (finde sie, indem du `$nu.env-path` in Nushell ausführst): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/de-DE/config/README.md b/docs/de-DE/config/README.md index c9b43645..61840003 100644 --- a/docs/de-DE/config/README.md +++ b/docs/de-DE/config/README.md @@ -159,7 +159,7 @@ Hier sind ein paar Beispiele: #### Style-Strings -Die meisten Module in Starship lassen dich den Darstellungsstil verändern. Dies passiert meistens an einem bestimmten Eintrag (gewöhnlich `style` genannt), der einen String mit den Einstellungen darstellt. Es folgen ein paar Beispiele für solche Strings zusammen der mit Beschreibungen, was sie bewirken. Details zur vollen Syntax findest du im [Erweiterten Konfigurationshandbuch](../advanced-config/). +Die meisten Module in Starship lassen dich den Darstellungsstil verändern. Dies passiert meistens an einem bestimmten Eintrag (gewöhnlich `style` genannt), der einen String mit den Einstellungen darstellt. Es folgen ein paar Beispiele für solche Strings zusammen der mit Beschreibungen, was sie bewirken. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -198,16 +198,16 @@ Dies ist eine Liste mit Prompt-weiten Konfigurationsoptionen. ### Optionen -| Option | Standartwert | Beschreibung | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Das Aussehen des Prompts festlegen. | -| `right_format` | `''` | Sieh [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout für das Scannen von Dateien (in Millisekunden). | -| `command_timeout` | `500` | Maximale Zeit für von Starship ausgeführte Kommandos. | -| `add_newline` | `true` | Fügt leere Zeilen zwischen Shell Prompts ein. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| Option | Standartwert | Beschreibung | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Das Aussehen des Prompts festlegen. | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | Timeout für das Scannen von Dateien (in Millisekunden). | +| `command_timeout` | `500` | Maximale Zeit für von Starship ausgeführte Kommandos. | +| `add_newline` | `true` | Fügt leere Zeilen zwischen Shell Prompts ein. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -301,6 +301,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1889,7 +1890,7 @@ The following variables can be used in `format`: | Variable | Beschreibung | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3357,7 +3358,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - Das aktuelle Verzeichnis enthält eine `.python-version`-Datei - Das aktuelle Verzeichnis enthält eine `Pipfile`-Datei @@ -3429,16 +3430,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Optionen + +| Option | Standartwert | Beschreibung | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Das Format für das Modul. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Stil für dieses Modul. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Beispiel | Beschreibung | +| --------- | --------- | ------------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Spiegelt den Wert der Option `symbol` | +| style\* | | Spiegelt den Wert der Option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3585,11 +3607,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Beispiel | Beschreibung | -| --------- | -------- | ------------------------------------- | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Spiegelt den Wert der Option `symbol` | -| style\* | | Spiegelt den Wert der Option `style` | +| Variable | Beispiel | Beschreibung | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Spiegelt den Wert der Option `symbol` | +| style\* | | Spiegelt den Wert der Option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4184,6 +4207,7 @@ Das `username` Modul zeigt den Namen des aktiven Benutzers. Das Modul wird gezei - Der aktuelle Benutzer ist nicht der eingeloggte Benutzer - Der Benutzer ist aktuell via SSH verbunden - Die Variable `show_always` ist auf true gesetzt +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4193,13 +4217,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Optionen -| Option | Standartwert | Beschreibung | -| ------------- | ----------------------- | ---------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | Stil wenn der Benutzer nicht unter root läuft. | -| `format` | `'[$user]($style) in '` | Das Format für das Modul. | -| `show_always` | `false` | Immer das `username` Modul anzeigen. | -| `disabled` | `false` | Deavktiviert das `username` Modul. | +| Option | Standartwert | Beschreibung | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | Stil wenn der Benutzer nicht unter root läuft. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | Das Format für das Modul. | +| `show_always` | `false` | Immer das `username` Modul anzeigen. | +| `disabled` | `false` | Deavktiviert das `username` Modul. | ### Variables @@ -4210,6 +4235,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Beispiel +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4221,6 +4248,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/de-DE/guide/README.md b/docs/de-DE/guide/README.md index a0b5a52a..b84883e5 100644 --- a/docs/de-DE/guide/README.md +++ b/docs/de-DE/guide/README.md @@ -40,11 +40,11 @@

    - Website + Website · Installation · - Konfiguration + Konfiguration

    @@ -161,7 +161,7 @@ align="right" /> -**Minimale, super schnelle und unendlich anpassbare Prompt für jede Shell!** +**Der minimalistische, super schnelle und unendlich anpassbare Prompt für jede Shell!** - **Schnell:** sie ist schnell – _sehr, sehr_ schnell! 🚀 - **Konfigurierbar:** konfiguriere jedes Detail der Prompt. @@ -171,7 +171,7 @@ - **Einfach:** schnell zu installieren – Betriebsbereit in nur wenigen Minuten.

    -Schau dir die Starship-Dokumentation an  ▶ +Schau dir die Starship-Dokumentation an  ▶

    @@ -431,10 +431,6 @@ Schaut euch bitte auch die Projekte an, die die Entstehung von Starship inspirie Unterstütze dieses Projekt, indem du [ein Sponsor wirst](https://github.com/sponsors/starship). Dein Name und Logo wird hier mit einem Link zu deiner Website erscheinen. -**Unterstützer** - -- [Appwrite](https://appwrite.io/) -


    Starship Raketen-Symbol diff --git a/docs/de-DE/installing/README.md b/docs/de-DE/installing/README.md index f21000a7..5779d264 100644 --- a/docs/de-DE/installing/README.md +++ b/docs/de-DE/installing/README.md @@ -5,7 +5,7 @@ Um Starship zu installieren, musst du zwei Dinge tun: 1. Lade die **starship** Datei auf den Computer herunter 1. Weise deine Shell an die Starship Datei als Eingabeaufforderung zu nutzen, indem du eines der Initialisierungs-Skripte benutzt -Die Anleitung auf [der Hauptseite](../guide/#🚀-installation) wird für die meisten Benutzer ausreichend sein. Für einige speziellere Plattformen wird jedoch eine speziellere Anleitung benötigt. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. Für einige speziellere Plattformen wird jedoch eine speziellere Anleitung benötigt. Es gibt sehr viele Plattformen, sodass diese nicht alle in die Hauptanleitung passen, aus diesem Grund sind hier ein paar Installationsanweisungen für ein paar Plattformen von der Community. Ist deine Platform nicht dabei? Dann füge bitte deine hinzu, sobald du herausgefunden hast wie man starship mit dieser benutzt! diff --git a/docs/es-ES/README.md b/docs/es-ES/README.md index c8b9b11e..c2a6ab56 100644 --- a/docs/es-ES/README.md +++ b/docs/es-ES/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: '¡El prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos!' actions: - - theme: brand + - + theme: brand text: Comenzar → link: ./guide/ features: - - + - title: Compatibilidad primero details: Funciona en los intérprete de comandos más comunes de los sistemas operativos más comunes. ¡Úsalo en todas partes! - - + - title: Desarrollado en Rust details: Obtén la mayor velocidad y seguridad de Rust, para hacer tu prompt lo más rápida y segura posible. - - + - title: Personalizable details: Puedes personalizar cada pequeño detalle a tu gusto, de manera que puedes tener un prompt minimalista o rico en funcionalidades. footer: Bajo una licencia ISC | Derechos de autor © 2019-presente Colaboradores de Starship @@ -24,12 +25,10 @@ metaTitle: "Starship: el prompt multi-intérprete" description: '¡Starship es el prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos! Muestra la información que necesitas, a la par que es elegante y minimalista. Instalación rápida disponible para Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, y PowerShell.' --- -

    - -
    + ### Prerequisitos @@ -58,6 +57,7 @@ description: '¡Starship es el prompt minimalista, ultrarápido e infinitamente ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: '¡Starship es el prompt minimalista, ultrarápido e infinitamente ::: Añade lo siguiente al final de tu archivo Nushell env (encuéntralo ejecutando `$nu.env-path` en Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/es-ES/advanced-config/README.md b/docs/es-ES/advanced-config/README.md index 5f61d4fb..2d37d4b7 100644 --- a/docs/es-ES/advanced-config/README.md +++ b/docs/es-ES/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Algunos intérpretes de comandos soportan un prompt derecho que se renderiza en la misma línea que la entrada. Starship puede establecer el contenido del prompt derecho usando la opción `right_format`. Cualquier módulo que pueda ser usado en `format` también es soportado en `right_format`. La variable `$all` solo contendrá módulos no utilizados explícitamente en `format` o `right_format`. -Nota: El prompt derecho es una sola línea siguiendo la ubicación de entrada. Para alinear los módulos arriba de la línea de entrada en un prompt multi-línea, vea el [módulo `fill`](../config/#fill). +Nota: El prompt derecho es una sola línea siguiendo la ubicación de entrada. Para alinear los módulos arriba de la línea de entrada en un prompt multi-línea, vea el [módulo de `relleno`](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/es-ES/config/README.md b/docs/es-ES/config/README.md index 757bcc0a..784e8daf 100644 --- a/docs/es-ES/config/README.md +++ b/docs/es-ES/config/README.md @@ -158,7 +158,7 @@ Por ejemplo: #### Cadenas de Estilo -La mayoría de los módulos de starship permiten configurar sus estilos de visualización. Esto se consigue con una entrada (normalmente llamada `style`) que no es más que un texto donde se especifica la configuración. A continuación mostramos algunos ejemplos de cadenas de estilo junto con su funcionalidad. Para más detalles sobre la sintaxis completa, consultar [la guía de configuración avanzada](../advanced-config/). +La mayoría de los módulos de starship permiten configurar sus estilos de visualización. Esto se consigue con una entrada (normalmente llamada `style`) que no es más que un texto donde se especifica la configuración. A continuación mostramos algunos ejemplos de cadenas de estilo junto con su funcionalidad. Para más detalles sobre la sintaxis completa, consultar la [guía de configuración avanzada](../advanced-config/). - `'fg:green bg:blue'` define el texto con color verde y el color de fondo azul - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ Esta es la lista de opciones de configuración del prompt. ### Opciones -| Opción | Predeterminado | Descripción | -| ----------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [ver aquí](#default-prompt-format) | Configura el formato del prompt. | -| `right_format` | `''` | Ver [Habilitar prompt derecho](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Tiempo de espera tras el que Starship escanea archivos (en milisegundos). | -| `command_timeout` | `500` | Tiempo de espera para los comandos ejecutados por Starship (en milisegundos). | -| `add_newline` | `true` | Inserta un línea en blanco entre las instrucciones del intérprete de comandos. | -| `paleta` | `''` | Establece la paleta de color de `paletas` a utilizar. | +| Opción | Predeterminado | Descripción | +| ----------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [ver aquí](#default-prompt-format) | Configura el formato del prompt. | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | Tiempo de espera tras el que Starship escanea archivos (en milisegundos). | +| `command_timeout` | `500` | Tiempo de espera para los comandos ejecutados por Starship (en milisegundos). | +| `add_newline` | `true` | Inserta un línea en blanco entre las instrucciones del intérprete de comandos. | +| `paleta` | `''` | Establece la paleta de color de `paletas` a utilizar. | | `paletas` | `{}` | Colección de paletas de colores que asignan [colores](../advanced-config/#style-strings) a nombres definidos por el usuario. Tenga en cuenta que las paletas de colores no pueden hacer referencia a sus propias definiciones de color. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -529,7 +530,7 @@ La opción `display` es un arreglo de la siguiente tabla. | Opción | Predeterminado | Descripción | | -------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | `threshold` | `10` | El umbral para la opción de visualización. | -| `style` | `'red bold'` | El estilo usado cuando si la opción `display` está activa. | +| `style` | `'red bold'` | El estilo usado cuando si la opción <0>display está activa. | | `charging_symbol` | | Símbolo opcional que se muestra si la opción de visualización está en uso, por defecto en la opción `charging_symbol` de la batería. | | `discharging_symbol` | | Símbolo opcional que se muestra si la opción de visualización está en uso, por defecto en la opción `discharging_symbol` de la batería. | @@ -1888,7 +1889,7 @@ Las siguientes variables se pueden utilizar en `format`: | Variable | Descripción | | ----------------- | ------------------------------------------------------------------------------------------------------------------------ | -| `all_status` | Atajo para `$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Muestra la cadena de formato de `diverged` `ahead` o `behind` o `up_to_date` basado en el estado actual del repositorio. | | `conflicted` | Muestra `conflicted` cuando esta rama tiene conflictos de fusión. | | `sin seguimiento` | Muestra `untracked` cuando hay archivos sin rastrear en el directorio de trabajo. | @@ -2196,23 +2197,23 @@ El módulo `hostname` muestra el nombre de host del sistema. ### Opciones -| Opción | Predeterminado | Descripción | -| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `ssh_only` | `true` | Mostrar sólo el nombre de host cuando esté conectado a una sesión SSH. | -| `ssh_symbol` | `'🌐 '` | Una cadena de formato que representa el símbolo cuando se conecta a la sesión SSH. | -| `trim_at` | `'.'` | Cadena en la que el nombre del host se corta, después de la primera coincidencia. `'.'` will stop after the first dot. `''` deshabilitará cualquier truncamiento. | -| `detect_env_vars` | `[]` | Qué variable(s) de entorno deben activar este módulo. | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | El formato del módulo. | -| `style` | `'negrita oscurecida verde'` | El estilo del módulo. | -| `disabled` | `false` | Deshabilita el módulo `hostname`. | - +| Opción | Predeterminado | Descripción | +| ----------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ssh_only` | `true` | Mostrar sólo el nombre de host cuando esté conectado a una sesión SSH. | +| `ssh_symbol` | `'🌐 '` | Una cadena de formato que representa el símbolo cuando se conecta a la sesión SSH. | +| `trim_at` | `'.'` | Cadena en la que el nombre del host se corta, después de la primera coincidencia. `'.'` will stop after the first dot. `''` deshabilitará cualquier truncamiento. | +| `detect_env_vars` | `[]` | Qué variable(s) de entorno deben activar este módulo. | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | El formato del módulo. | +| `style` | `'negrita oscurecida verde'` | El estilo del módulo. | +| `disabled` | `false` | Deshabilita el módulo `hostname`. | ### Variables -| Variable | Ejemplo | Descripción | -| nombre del host | `computadora` | El nombre de host de la computadora | -| style\* | | Refleja el valor de la opción `style` | -| ssh_symbol | `'🌏 '` | El símbolo a representar cuando está conectado a la sesión SSH | +| Variable | Ejemplo | Descripción | +| --------------- | ------------- | -------------------------------------------------------------- | +| nombre del host | `computadora` | El nombre de host de la computadora | +| style\* | | Refleja el valor de la opción `style` | +| ssh_symbol | `'🌏 '` | El símbolo a representar cuando está conectado a la sesión SSH | *: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Muestra la versión de python dentro de un entorno virtual local. -# -# Ten en cuenta que esto solo funcionará cuando el venv esté dentro del proyecto y sólo -# funcionará en el directorio que contiene el directorio venv dir pero ¿tal vez esté bien? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes condiciones: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Opciones + +| Opción | Predeterminado | Descripción | +| ------------------- | ------------------------------------ | --------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | El formato del módulo. | +| `version_format` | `'v${raw}'` | El formato de versión. Las variables disponibles son `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | El estilo del módulo. | +| `detect_extensions` | `['.qmd']` | Qué extensiones deberían activar este módulo. | +| `detect_files` | `['_quarto.yml']` | Qué nombres de archivo deberían activar este módulo. | +| `detect_folders` | `[]` | Qué carpetas deberían activar este módulo. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Ejemplo | Descripción | +| --------- | --------- | -------------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Refleja el valor de la opción `symbol` | +| style\* | | Refleja el valor de la opción `style` | + +*: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo ## R @@ -3584,11 +3606,12 @@ Starship obtiene la versión actual de Ruby ejecutando `ruby -v`. ### Variables -| Variable | Ejemplo | Descripción | -| --------- | -------- | -------------------------------------- | -| version | `v2.5.1` | La versión de `ruby` | -| symbol | | Refleja el valor de la opción `symbol` | -| style\* | | Refleja el valor de la opción `style` | +| Variable | Ejemplo | Descripción | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | La versión de `ruby` | +| symbol | | Refleja el valor de la opción `symbol` | +| style\* | | Refleja el valor de la opción `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo @@ -4183,6 +4206,7 @@ El módulo `username` muestra el nombre de usuario activo. El módulo se mostrar - El usuario actual no es el mismo que el que está conectado - El usuario está actualmente conectado como una sesión SSH - La variable `show_always` se establece en true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ La conexión SSH se detecta comprobando las variables de entorno `SSH_CONNECTION ### Opciones -| Opción | Predeterminado | Descripción | -| ------------- | ----------------------- | ------------------------------------------------ | -| `style_root` | `'bold red'` | El estilo usado cuando el usuario es root/admin. | -| `style_user` | `'bold yellow'` | El estilo usado para usuarios no root. | -| `format` | `'[$user]($style) in '` | El formato del módulo. | -| `show_always` | `false` | Siempre muestra el módulo `username`. | -| `disabled` | `false` | Deshabilita el módulo `username`. | +| Opción | Predeterminado | Descripción | +| ----------------- | ----------------------- | ----------------------------------------------------- | +| `style_root` | `'bold red'` | El estilo usado cuando el usuario es root/admin. | +| `style_user` | `'bold yellow'` | El estilo usado para usuarios no root. | +| `detect_env_vars` | `[]` | Qué variable(s) de entorno deben activar este módulo. | +| `format` | `'[$user]($style) in '` | El formato del módulo. | +| `show_always` | `false` | Siempre muestra el módulo `username`. | +| `disabled` | `false` | Deshabilita el módulo `username`. | ### Variables @@ -4209,6 +4234,8 @@ La conexión SSH se detecta comprobando las variables de entorno `SSH_CONNECTION ### Ejemplo +#### Mostrar siempre el nombre del host + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Ocultar el nombre de host en sesiones remotas de tmux + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant El módulo `vagrant` muestra la versión instalada de [Vagrant](https://www.vagrantup.com/). Por defecto, el módulo se mostrará si se cumplen cualquiera de las siguientes condiciones: diff --git a/docs/es-ES/guide/README.md b/docs/es-ES/guide/README.md index 852abc3a..af421e5d 100644 --- a/docs/es-ES/guide/README.md +++ b/docs/es-ES/guide/README.md @@ -40,11 +40,11 @@

    - Sitio web + Sitio web Instalación -Configuración +Configuración

    @@ -171,7 +171,7 @@ - **Fácil:** rápido de instalar – empieza a usarlo en minutos.

    -Explora la documentación de Starship  ▶ +Explora la documentación de Starship  ▶

    @@ -431,10 +431,6 @@ Por favor, revisa estas obras anteriores que ayudaron a inspirar la creación de Apoya este proyecto [convirtiéndote en patrocinador](https://github.com/sponsors/starship). Tu nombre o logo aparecerá aquí con un enlace a tu sitio web. -**Patrocinadores** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/fr-FR/README.md b/docs/fr-FR/README.md index eb114c81..a7557be9 100644 --- a/docs/fr-FR/README.md +++ b/docs/fr-FR/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: L'invite minimaliste, ultra-rapide et personnalisable à l'infini pour n'importe quel shell ! actions: - - theme: brand + - + theme: brand text: Commencez → link: ./guide/ features: - - + - title: Compatibilité avant tout details: Fonctionne sur tous les principaux shells et système d'exploitation. Utilisez-le partout ! - - + - title: Propulsé par Rust details: Profitez de toute la rapidité et la sécurité de Rust pour rendre votre invite de commandes la plus rapide et fiable possible. - - + - title: Personnalisable details: Tous les petits détails sont personnalisable à votre goût, pour rendre votre invite de commandes aussi légère ou complète que le vous souhaitez. footer: Licence ISC | Copyright © 2019-présent Contributeurs Starship @@ -24,12 +25,10 @@ metaTitle: "Starship : Invite Multi-Shell" description: Starship est une invite minimaliste, ultra-rapide et hautement personnalisable pour n'importe quel shell ! Montre les informations dont vous avez besoin tout en restant élégante et minimaliste. Installation rapide disponible pour Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, et PowerShell. --- -

    - -
    + ### Pré-requis @@ -58,6 +57,7 @@ description: Starship est une invite minimaliste, ultra-rapide et hautement pers ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship est une invite minimaliste, ultra-rapide et hautement pers ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/fr-FR/advanced-config/README.md b/docs/fr-FR/advanced-config/README.md index 55014941..d971587d 100644 --- a/docs/fr-FR/advanced-config/README.md +++ b/docs/fr-FR/advanced-config/README.md @@ -10,7 +10,7 @@ Les configurations dans cette section sont sujettes à modification dans les fut ## TransientPrompt in PowerShell -It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `Enable-TransientPrompt` in the shell session. To make it permanent, put this statement in your `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`. +Il est possible de remplacer le prompt précédent avec une string personnalisée. Ceci est utile lorsque toutes les informations fournies par l'invité de commande ne sont pas nécessaire. Pour activer ceci, exécutez `Enable-TransientPrompt` dans la session shell. Pour que la modification soit permanente, ajoutez cette commande dans votre `$PROFILE`. Transience can be disabled on-the-fly with `Disable-TransientPrompt`. By default, the left side of input gets replaced with `>`. To customize this, define a new function called `Invoke-Starship-TransientFunction`. For example, to display Starship's `character` module here, you would do @@ -26,13 +26,13 @@ Enable-TransientPrompt ## TransientPrompt and TransientRightPrompt in Cmd -Clink allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, run `clink set prompt.transient ` where \ can be one of: +Clink allows you to replace the previous-printed prompt with custom strings. Ceci est utile lorsque toutes les informations fournies par l'invité de commande ne sont pas nécessaire. To enable this, run `clink set prompt.transient ` where \ can be one of: - `always`: always replace the previous prompt - `same_dir`: replace the previous prompt only if the working directory is same - `off`: do not replace the prompt (i.e. turn off transience) -You need to do this only once. Make the following changes to your `starship.lua` to customize what gets displayed on the left and on the right: +Il est nécessaire de faire cela qu'une fois. Modifiez votre `starship.lua` pour customiser ce qui sera présenté à gauche et à droite: - By default, the left side of input gets replaced with `>`. To customize this, define a new function called `starship_transient_prompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display Starship's `character` module here, you would do @@ -56,7 +56,7 @@ load(io.popen('starship init cmd'):read("*a"))() ## TransientPrompt et TransientRightPrompt dans Fish -It is possible to replace the previous-printed prompt with a custom string. This is useful in cases where all the prompt information is not always needed. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`. +Il est possible de remplacer le prompt précédent avec une string personnalisée. Ceci est utile lorsque toutes les informations fournies par l'invité de commande ne sont pas nécessaire. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`. Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct. @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Certains shells peuvent gérer une invite de commande à droite, sur la même ligne que l’entrée utilisateur. Starship peut définir le contenu de cet invite à droite en utilisant l’option `right_format`. N’importe quel module qui peut être utilisé dans `format` est aussi géré dans `right_format`. La variable `$all` va seulement contenir les modules qui ne sont explicitement utilisés ni dans `format`, ni dans `right_format`. -Note: l’invite à droite est une seule ligne, sur la même ligne que l’entrée. Pour aligner à droite les modules au-dessus de la ligne d’entrée d’une invite multiligne, voir le [module `fill`](../config/#fill). +Note: l’invite à droite est une seule ligne, sur la même ligne que l’entrée. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/fr-FR/config/README.md b/docs/fr-FR/config/README.md index 0791b5ee..6bb5972e 100644 --- a/docs/fr-FR/config/README.md +++ b/docs/fr-FR/config/README.md @@ -158,7 +158,7 @@ Par exemple : #### Chaînes de style -La plupart des modules de Starship vous permettent de configurer leurs styles d'affichage. Cela se fait avec une entrée (généralement appelée `style`) qui est une chaîne de caractères spécifiant la configuration. Voici quelques exemples de chaînes de style avec ce qu'elles font. Pour plus de détails sur la syntaxe complète, consultez le [guide de configuration avancé](../advanced-config/). +La plupart des modules de Starship vous permettent de configurer leurs styles d'affichage. Cela se fait avec une entrée (généralement appelée `style`) qui est une chaîne de caractères spécifiant la configuration. Voici quelques exemples de chaînes de style avec ce qu'elles font. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ Voici la liste des options de configuration globales de l'invite de commandes. ### Options -| Option | Défaut | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [lien](#default-prompt-format) | Configure le format de l'invite. | -| `right_format` | `''` | Voir [Activer le prompt à droite](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Délai maximal pour le scan des fichiers par starship (en millisecondes). | -| `command_timeout` | `500` | Délai maximal pour les commandes exécutées par starship (en millisecondes). | -| `add_newline` | `true` | Insère une ligne vide entre les invites du shell. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| Option | Défaut | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [lien](#default-prompt-format) | Configure le format de l'invite. | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | Délai maximal pour le scan des fichiers par starship (en millisecondes). | +| `command_timeout` | `500` | Délai maximal pour les commandes exécutées par starship (en millisecondes). | +| `add_newline` | `true` | Insère une ligne vide entre les invites du shell. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ Les variables suivantes peuvent être utilisées pour la valeur de `format`: | Variable | Description | | -------------- | --------------------------------------------------------------------------------------------------------------------- | -| `all_status` | Raccourci pour `$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Affiche la chaine de formatage `diverged`, `ahead`, `behind` ou `up_to_date` en se basant sur l’état actuel du dépôt. | | `conflicted` | Affiche `conflicted` lorsque la branche courante a des conflits de fusion. | | `untracked` | Affiche `untracked` lorsqu'il y a des fichiers non suivis dans le répertoire de travail. | @@ -3428,17 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Affiche la version de python depuis l'intérieur d'un venv local. -# -# Notez que cela ne fonctionnera que lorsque le venv est à l'intérieur du projet, -# et uniquement lorsque vous vous situez dans le répertoire contenant le dossier du venv -# mais peut-être que c'est suffisant? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +Par défaut, le module sera affiché si l’une de ces conditions est remplie: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Défaut | Description | +| ------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | Format du module. | +| `version_format` | `'v${raw}'` | Le format de la version. Les variables disponibles sont `raw`, `major`, `minor`, & `patch` | +| `symbole` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Le style pour le module. | +| `detect_extensionsdetect_extensions` | `['.qmd']` | Les extensions qui déclenchent ce module. | +| `detect_files` | `['_quarto.yml']` | Les fichiers qui activent ce module. | +| `detect_folders` | `[]` | Les dossiers qui activent ce module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Exemple | Description | +| --------- | --------- | -------------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbole | | Reflète la valeur de l'option `symbol` | +| style\* | | Reflète la valeur de l'option `style` | + +*: Cette variable peut uniquement être utilisée dans une chaine de style ## R @@ -3585,11 +3606,12 @@ Starship obtient la version actuelle de Ruby en exécutant `ruby -v`. ### Variables -| Variable | Exemple | Description | -| --------- | -------- | -------------------------------------- | -| version | `v2.5.1` | La version de `ruby` | -| symbole | | Reflète la valeur de l'option `symbol` | -| style\* | | Reflète la valeur de l'option `style` | +| Variable | Exemple | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | La version de `ruby` | +| symbole | | Reflète la valeur de l'option `symbol` | +| style\* | | Reflète la valeur de l'option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Cette variable peut uniquement être utilisée dans une chaine de style @@ -4184,6 +4206,7 @@ Le module `username` affiche le nom de l’utilisateur actif. Le module sera aff - L'utilisateur courant est différent de celui connecté - L'utilisateur est actuellement connecté en tant que session SSH - La variable `show_always` est définie à true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4193,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Défaut | Description | -| ------------- | ----------------------- | ---------------------------------------------------- | -| `style_root` | `'bold red'` | Le style utilisé quand l'utilisateur est root/admin. | -| `style_user` | `'bold yellow'` | Le style utilisé pour les utilisateurs non-root. | -| `format` | `'[$user]($style) in '` | Format du module. | -| `show_always` | `false` | Toujours afficher le module `username`. | -| `disabled` | `false` | Désactive le module `username`. | +| Option | Défaut | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | Le style utilisé quand l'utilisateur est root/admin. | +| `style_user` | `'bold yellow'` | Le style utilisé pour les utilisateurs non-root. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | Format du module. | +| `show_always` | `false` | Toujours afficher le module `username`. | +| `disabled` | `false` | Désactive le module `username`. | ### Variables @@ -4210,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Exemple +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4221,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant Le module `vagrant` affiche la version de [Vagrant](https://www.vagrantup.com/) installée. Par défaut, le module sera affiché si l’une de ces conditions est remplie: diff --git a/docs/fr-FR/guide/README.md b/docs/fr-FR/guide/README.md index 917027fc..03ddb1cb 100644 --- a/docs/fr-FR/guide/README.md +++ b/docs/fr-FR/guide/README.md @@ -40,11 +40,11 @@

    - Site web + Site web · Installation · - Configuration + Configuration

    @@ -171,7 +171,7 @@ - **Facile:** rapide à installer – commencez à l'utiliser en quelques minutes.

    -Consultez la documentation de Starship  ▶ +Consultez la documentation de Starship  ▶

    @@ -431,10 +431,6 @@ Voyez ces travaux précédents qui ont contribué à inspirer la création de St Soutenez ce projet en [devenant un collaborateur](https://github.com/sponsors/starship). Votre nom ou logo apparaîtra ici avec un lien vers votre site Web. -**Palier Collaborateur** - -- [Appwrite](https://appwrite.io/) -


    Icône de roquette de Starship diff --git a/docs/fr-FR/installing/README.md b/docs/fr-FR/installing/README.md index 868152a4..acb135dc 100644 --- a/docs/fr-FR/installing/README.md +++ b/docs/fr-FR/installing/README.md @@ -5,7 +5,7 @@ Pour installer starship, vous devez faire deux choses: 1. Installez le binaire **starship** sur votre ordinateur 1. Dire à votre shell d'utiliser le binaire de starship comme invite en modifiant ses scripts d'initialisation -Pour la plupart des utilisateurs, les instructions sur [la page principale](../guide/#🚀-installation) fonctionneront bien. Cependant, pour certaines plateformes plus spécialisées, des instructions différentes sont nécessaires. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. Cependant, pour certaines plateformes plus spécialisées, des instructions différentes sont nécessaires. Il y a tellement de plates-formes, qu'il aurait été déraisonnable de les faire apparaître dans le README principal, voici donc quelques instructions d'installation supplémentaires pour celles-ci, écrites par la communauté. La vôtre n'est pas là ? S'il vous plaît, ajoutez-la ici pour les suivants ! diff --git a/docs/id-ID/README.md b/docs/id-ID/README.md index 6050e89c..1bf25cd3 100644 --- a/docs/id-ID/README.md +++ b/docs/id-ID/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Prompt yang minimal, super cepat, dan dapat disesuaikan tanpa batas untuk shell apa pun! actions: - - theme: brand + - + theme: brand text: Mari Mulai → link: ./guide/ features: - - + - title: Kompatibilitas Yang Utama details: Dapat berfungsi di shells standar dengan sistem operasi yang paling biasa. Pakai di mana saja! - - + - title: Dibuat dengan Rust details: Menggunakan kecepatan dan keamanan dari Rust, untuk membuat prompt kamu bekerja secepat dan seandal mungkin. - - + - title: Dapat Dikustomisasi details: Kamu dapat mengatur semua detail kecil dengan sesukamu, entah itu untuk membuatnya sebagai prompt yang seminimal mungkin atau kaya akan fitur yang kamu mau. footer: Berlisensi ISC | Hak Cipta © 2019-sekarang Kontributor Starship @@ -24,12 +25,10 @@ metaTitle: "Starship: Prompt Lintas Shell" description: Starship merupakan sebuah prompt yang minimal, super cepat, dan sangat bisa untuk dikustomisasi untuk shell apapun! Bisa menampilkan informasi yang kamu butuhkan, namun tetap bisa tampil dengan ramping dan minimal. Instalasi sederhana tersedia untuk Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, dan PowerShell. --- -

    - -
    + ### Prasyarat @@ -58,6 +57,7 @@ description: Starship merupakan sebuah prompt yang minimal, super cepat, dan san ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -156,7 +156,8 @@ description: Starship merupakan sebuah prompt yang minimal, super cepat, dan san ::: - Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + Tambahkan baris berikut di akhir env file Nushell anda (dengan menjalankan `$nu.env-path` di Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/id-ID/advanced-config/README.md b/docs/id-ID/advanced-config/README.md index 575a89e2..d7570a27 100644 --- a/docs/id-ID/advanced-config/README.md +++ b/docs/id-ID/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Sebagian shells mendukung right prompt yang mana dirender di baris yang sama sesuai dengan masukannya. Starship mampu mengatur konten right prompt dengan menggunakan opsi `right_format`. Semua modul yang bisa digunakan di dalam `format` juga dapat digunakan di dalam `right_format`. Variabel `$all` hanya akan memuat modul yang tidak digunakan secara eksplisit di dalam `format` ataupun `right_format`. -Catatan: Right propmt merupakan sebuah baris yang mengikuti lokasi baris inputan. Untuk membuat modul rata ke kanan di atas baris masukan di dalam multi-line prompt, lihat [`fill` module](../config/#fill). +Catatan: Right propmt merupakan sebuah baris yang mengikuti lokasi baris inputan. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/id-ID/config/README.md b/docs/id-ID/config/README.md index 798f68ba..64becc08 100644 --- a/docs/id-ID/config/README.md +++ b/docs/id-ID/config/README.md @@ -158,7 +158,7 @@ Sebagai contoh: #### Penataan String -Sebagian besar modul starship memungkinkan kamu untuk mengkonfigurasi gaya tampilannya. Hal ini dilakukan dengan sebuah entri (biasanya `style`) yang konfigurasinya ditentukan oleh string. Berikut adalah beberapa contoh penataan pada string dan kegunaannya. Untuk detail sintaksis yang lebih lengkap, lihat [panduan konfigurasi lanjutan](../advanced-config/). +Sebagian besar modul starship memungkinkan kamu untuk mengkonfigurasi gaya tampilannya. Hal ini dilakukan dengan sebuah entri (biasanya `style`) yang konfigurasinya ditentukan oleh string. Berikut adalah beberapa contoh penataan pada string dan kegunaannya. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ Berikut adalah opsi konfigurasi dari list yang bersifat prompt-wide. ### Opsi -| Opsi | Bawaan | Deskripsi | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `fromat` | [link](#default-prompt-format) | Mengkonfigurasi format pada prompt. | +| Opsi | Bawaan | Deskripsi | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `fromat` | [link](#default-prompt-format) | Mengkonfigurasi format pada prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Batas waktu starpship untuk memindai file (dalam milidetik). | -| `command_timeout` | `500` | Batas waktu untuk perintah yang dijalankan starship (dalam milidetik). | -| `add_newline` | `true` | Memasukkan baris kosong antara prompt shell. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Batas waktu starpship untuk memindai file (dalam milidetik). | +| `command_timeout` | `500` | Batas waktu untuk perintah yang dijalankan starship (dalam milidetik). | +| `add_newline` | `true` | Memasukkan baris kosong antara prompt shell. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variabel | Deskripsi | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Opsi + +| Opsi | Bawaan | Deskripsi | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | +| `fromat` | `'via [$symbol($version )]($style)'` | Format dari modul. | +| `version_format` | `'v${raw}'` | Format dari versi. Variabel yang tersedia adalah `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Gaya penataan untuk modul. | +| `detect_extensions` | `['.qmd']` | Ekstensi mana yang sebaiknya memicu modul ini. | +| `detect_files` | `['_quarto.yml']` | filenames mana yang sebaiknya memicu modul ini. | +| `detect_folders` | `[]` | Folder mana yang sebaiknya memicul modul ini. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variabel + +| Variabel | Contoh | Deskripsi | +| --------- | --------- | --------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Menyalin nilai dari opsi `symbol` | +| style\* | | Menyalin nilai dari opsi `style` | + +*: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variabel -| Variabel | Contoh | Deskripsi | -| --------- | -------- | --------------------------------- | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Menyalin nilai dari opsi `symbol` | -| style\* | | Menyalin nilai dari opsi `style` | +| Variabel | Contoh | Deskripsi | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Menyalin nilai dari opsi `symbol` | +| style\* | | Menyalin nilai dari opsi `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Variabel tersebut hanya dapat digunakan sebagai bagian dari penataan string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Opsi -| Opsi | Bawaan | Deskripsi | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `fromat` | `'[$user]($style) in '` | Format dari modul. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Opsi | Bawaan | Deskripsi | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `fromat` | `'[$user]($style) in '` | Format dari modul. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variabel @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Contoh +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). Secara bawaan, modul akan aktif jika beberapa syarat berikut telah terpenuhi: diff --git a/docs/id-ID/guide/README.md b/docs/id-ID/guide/README.md index 6a6c3359..9f773cbb 100644 --- a/docs/id-ID/guide/README.md +++ b/docs/id-ID/guide/README.md @@ -40,11 +40,11 @@

    - Situs Web + Situs Web · Pemasangan · - Konfigurasi + Konfigurasi

    @@ -171,7 +171,7 @@ - **Mudah:** pemasangan singkat – mulai menggunakannya dalam hitungan menit.

    -Jelajahi dokumentasi Starship  ▶ +Jelajahi dokumentasi Starship  ▶

    @@ -338,7 +338,7 @@ eval $(starship init ion)
    Nushell -Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): +Tambahkan baris berikut di akhir env file Nushell anda (dengan menjalankan `$nu.env-path` di Nushell): ```sh mkdir ~/.cache/starship @@ -431,10 +431,6 @@ Please check out these previous works that helped inspire the creation of starsh Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Ikon roket Starship diff --git a/docs/id-ID/installing/README.md b/docs/id-ID/installing/README.md index d738fe5a..f0828d9b 100644 --- a/docs/id-ID/installing/README.md +++ b/docs/id-ID/installing/README.md @@ -1,11 +1,11 @@ -# Advanced Installation +# Instalasi Lanjutan Untuk memasang starship, ada dua hal yang perlu anda lakukan: -1. Get the **starship** binary onto your computer -1. Tell your shell to use the starship binary as its prompt by modifying its init scripts +1. Dapatkan binary **starship** di komputer anda +1. Atur shell anda untuk menggunakan binary tersebut sebagai prompt dengan mengedit init scripts nya -For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. However, for some more specialized platforms, different instructions are needed. +Untuk kebayakan pengguna, instruksi pada [halaman utama](../guide/#🚀-installation) akan berjalan lancar. Namun, untuk sebagian platfrom khusus, instruksi khusus diperlukan. There are so many platforms out there that they didn't fit into the main README.md file, so here are some installation instructions for other platforms from the community. Is yours not here? Please do add it here if you figure it out! diff --git a/docs/it-IT/README.md b/docs/it-IT/README.md index 2f88e4fe..85e6f099 100644 --- a/docs/it-IT/README.md +++ b/docs/it-IT/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Il prompt minimalista, super veloce e infinitamente personalizzabile per qualsiasi shell! actions: - - theme: brand + - + theme: brand text: Inizia → link: ./guide/ features: - - + - title: Prima la compatibilità details: Funziona sulle shell e sui sistemi operativi più comuni. Usalo ovunque! - - + - title: Scritto in Rust details: Sfrutta la velocità e sicurezza di Rust, per rendere il tuo prompt il più veloce e il più affidabile. - - + - title: Personalizzabile details: Ogni più piccolo dettaglio è personalizzabile a piacere, per rendere questo prompt minimalista o ricco di tutte le funzionalità che desideri. footer: Licenza ISC | Copyright © 2019-present Starship Collaboratori @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship è il prompt minimalista, super veloce ed estremamente personalizzabile per qualsiasi shell! Mostra le informazioni di cui hai bisogno, rimanendo elegante e minimale. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### Prerequisiti @@ -58,6 +57,7 @@ description: Starship è il prompt minimalista, super veloce ed estremamente per ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship è il prompt minimalista, super veloce ed estremamente per ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/it-IT/config/README.md b/docs/it-IT/config/README.md index ed765891..9a6a638c 100644 --- a/docs/it-IT/config/README.md +++ b/docs/it-IT/config/README.md @@ -158,7 +158,7 @@ Per esempio: #### Stringhe di stile -La maggior parte dei moduli in starship ti permettono di configurare i loro stili di visualizzazione. Questo viene fatto con una voce (solitamente chiamata `style`) che è una stringa che specifica la configurazione. Ecco alcuni esempi di stringhe di stile per quello che fanno. Per maggiori dettagli sulla sintassi completa, consulta la [guida di configurazione avanzata](../advanced-config/). +La maggior parte dei moduli in starship ti permettono di configurare i loro stili di visualizzazione. Questo viene fatto con una voce (solitamente chiamata `style`) che è una stringa che specifica la configurazione. Ecco alcuni esempi di stringhe di stile per quello che fanno. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Opzioni -| Opzione | Default | Descrizione | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configura il formato del prompt. | +| Opzione | Default | Descrizione | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configura il formato del prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout per starship per scansionare i file (in millisecondi). | -| `command_timeout` | `500` | Timeout per i comandi eseguiti da starship (in millisecondi). | -| `add_newline` | `true` | Inserisce una riga vuota tra i prompt della shell. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout per starship per scansionare i file (in millisecondi). | +| `command_timeout` | `500` | Timeout per i comandi eseguiti da starship (in millisecondi). | +| `add_newline` | `true` | Inserisce una riga vuota tra i prompt della shell. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Descrizione | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Opzioni + +| Opzione | Default | Descrizione | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | Il formato della versione. Le variabili disponibili sono `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Lo stile per il modulo. | +| `detect_extensions` | `['.qmd']` | Quali estensioni dovrebbero attivare questo modulo. | +| `detect_files` | `['_quarto.yml']` | Quali nomi di file dovrebbero attivare questo modulo. | +| `detect_folders` | `[]` | Quali cartelle dovrebbero attivare questo modulo. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Esempio | Descrizione | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Esempio | Descrizione | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Esempio | Descrizione | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Opzioni -| Opzione | Default | Descrizione | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Opzione | Default | Descrizione | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Esempio +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/it-IT/guide/README.md b/docs/it-IT/guide/README.md index f4c9a6c3..295c9eb5 100644 --- a/docs/it-IT/guide/README.md +++ b/docs/it-IT/guide/README.md @@ -171,7 +171,7 @@ - **Facile:** veloce da installare - inizia ad usarlo in pochi minuti.

    -Esplora la documentazione di Starship  ▶ +Esplora la documentazione di Starship  ▶

    @@ -431,10 +431,6 @@ Ti invito di controllare questi lavori precedenti che hanno contribuito a ispira Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/it-IT/installing/README.md b/docs/it-IT/installing/README.md index e37ccb26..4fe9a47c 100644 --- a/docs/it-IT/installing/README.md +++ b/docs/it-IT/installing/README.md @@ -5,7 +5,7 @@ Per installare starship, è necessario fare due cose: 1. Ottieni il binario **starship** sul tuo computer 1. Indica alla tua shell di usare il binario starship come prompt modificando i suoi script in init -Per la maggior parte degli utenti, le istruzioni nella [pagina principale](../guide/#🚀-installation) funzioneranno bene. Tuttavia, per alcune piattaforme più specializzate, sono necessarie istruzioni diverse. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. Tuttavia, per alcune piattaforme più specializzate, sono necessarie istruzioni diverse. Ci sono così tante piattaforme là fuori che non sono tutte inserite nel README.md principale, così ecco alcune istruzioni di installazione per altre piattaforme della community. La tua non c'è? Per favore, aggiungilo qui se capisci che manca! diff --git a/docs/ja-JP/README.md b/docs/ja-JP/README.md index 91590f42..9c921c31 100644 --- a/docs/ja-JP/README.md +++ b/docs/ja-JP/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトです! actions: - - theme: brand + - + theme: brand text: Get Started → link: ./guide/ features: - - + - title: 互換性優先 details: 一般的なほとんどのOSの一般的なほとんどのシェル上で動作します。 あらゆるところで使用してください! - - + - title: Rust製 details: Rustの最高レベルの速度と安全性を用いることで、可能な限り高速かつ信頼性を高くしています。 - - + - title: カスタマイズ可能 details: それぞれの細かい点は好みにカスタマイズが出来るため、ミニマルにも多機能にも好きなようにプロンプトを設定することができます。 footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship はミニマルで、非常に高速で、カスタマイズ性の高い、あらゆるシェルのためのプロンプトです! ミニマルかつ洗練された形で、あなたに必要な情報を表示します。 Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, PowerShellで簡単に利用できます。 --- -

    - -
    + ### 必要なもの @@ -58,6 +57,7 @@ description: Starship はミニマルで、非常に高速で、カスタマイ ```sh brew install starship ``` + [Winget](https://github.com/microsoft/winget-cli)を使用する ```powershell @@ -157,6 +157,7 @@ description: Starship はミニマルで、非常に高速で、カスタマイ ::: そして、Nushellの設定ファイルの最後に以下を追加してください( `$nu.config-path` を実行してください): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/ja-JP/config/README.md b/docs/ja-JP/config/README.md index 1b8c67a1..75268119 100644 --- a/docs/ja-JP/config/README.md +++ b/docs/ja-JP/config/README.md @@ -158,7 +158,7 @@ line2 #### スタイルの設定 -Starshipのほとんどのモジュールでは、表示スタイルを設定できます。 これは、設定を指定する文字列であるエントリ(`style`)で行われます。 スタイル文字列の例とその機能を次に示します。 完全な構文の詳細については、詳細は [高度な設定](../advanced-config/)を参照してください 。 +Starshipのほとんどのモジュールでは、表示スタイルを設定できます。 これは、設定を指定する文字列であるエントリ(`style`)で行われます。 スタイル文字列の例とその機能を次に示します。 For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] ### オプション -| オプション | デフォルト | 説明 | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | プロンプトの形式を設定します。 | -| `right_format` | `''` | [右プロンプトの有効化](../advanced-config/#enable-right-prompt)を参照してください。 | -| `scan_timeout` | `30` | ファイルをスキャンする際のタイムアウト時間 (milliseconds) です。 | -| `command_timeout` | `500` | Starshipによって実行されたコマンドのタイムアウト時間 (milliseconds) です。 | -| `add_newline` | `true` | シェルプロンプトの間に空行を挿入します。 | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| オプション | デフォルト | 説明 | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | プロンプトの形式を設定します。 | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | ファイルをスキャンする際のタイムアウト時間 (milliseconds) です。 | +| `command_timeout` | `500` | Starshipによって実行されたコマンドのタイムアウト時間 (milliseconds) です。 | +| `add_newline` | `true` | シェルプロンプトの間に空行を挿入します。 | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ WSL環境のWindowsディレクトリ(例: `/mnt/c/`以下) では、Git Status | 変数 | 説明 | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### オプション + +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------------ | ------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | モジュールのスタイルです。 | +| `detect_extensions` | `['.qmd']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['_quarto.yml']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `disabled` | `false` | Disables the `quarto` module. | + +### 変数 + +| 変数 | 設定例 | 説明 | +| --------- | --------- | ----------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | + +*: この変数は、スタイル文字列の一部としてのみ使用することができます。 ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | -------- | ----------------------- | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -4183,6 +4206,7 @@ The `typst` module shows the current installed version of Typst used in a projec - カレントユーザーが、ログインしているユーザーとは異なる - ユーザーがSSHセッションとして接続されている - `show_always`変数がtrueに設定されている +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### オプション -| オプション | デフォルト | 説明 | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | 非rootユーザーに使用されるスタイルです。 | -| `format` | `'[$user]($style) in '` | module のフォーマットです。 | -| `show_always` | `false` | `username` モジュールを常に表示します。 | -| `disabled` | `false` | `username` モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | 非rootユーザーに使用されるスタイルです。 | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | module のフォーマットです。 | +| `show_always` | `false` | `username` モジュールを常に表示します。 | +| `disabled` | `false` | `username` モジュールを無効にします。 | ### 変数 @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 設定例 +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant `vagrant`モジュールは、現在インストールされている[Vagrant](https://www.vagrantup.com/)のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 diff --git a/docs/ja-JP/guide/README.md b/docs/ja-JP/guide/README.md index 815925b8..1d3b668b 100644 --- a/docs/ja-JP/guide/README.md +++ b/docs/ja-JP/guide/README.md @@ -40,11 +40,11 @@

    - ウェブサイト + ウェブサイト · インストール · - 設定 + 設定

    @@ -171,7 +171,7 @@ - **簡単:** 迅速なインストールが可能であり、数分で使用開始可能です。

    -Starshipのドキュメントを見る  ▶ +Starshipのドキュメントを見る  ▶

    @@ -431,10 +431,6 @@ Starshipのさらなるカスタマイズを目指すなら以下を参考にし [スポンサーになることで](https://github.com/sponsors/starship)このプロジェクトをサポートできます。 名前やロゴがあなたのホームページへのリンクとともに表示されます。 -**スポンサーティア** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/ja-JP/installing/README.md b/docs/ja-JP/installing/README.md index 1d00825b..357f8a65 100644 --- a/docs/ja-JP/installing/README.md +++ b/docs/ja-JP/installing/README.md @@ -5,7 +5,7 @@ Starship をインストールするには、以下の2つのことを行う必 1. ** starship ** のバイナリをコンピューター上に取得する 1. Init スクリプトを修正することで、Starship バイナリをプロンプトとして使用するようシェルに指示する -ほとんどのユーザーの場合、[メインページ](../guide/#🚀-installation)の説明でうまく動作します。 しかし、より特殊なプラットフォームでは、別の操作が必要になることがあります。 +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. しかし、より特殊なプラットフォームでは、別の操作が必要になることがあります。 プラットフォームは無数に存在するため、メインの README.md ファイルには書ききれません。そこで、このページでは、コミュニティにより提供された他のプラットフォーム向けのインストール方法について紹介します。 あなたが使用しているプラットフォームが見当たりませんか? その場合は是非、見つけた方法をここに追加してください。 diff --git a/docs/ko-KR/README.md b/docs/ko-KR/README.md index 41736c73..3654f0ba 100644 --- a/docs/ko-KR/README.md +++ b/docs/ko-KR/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null - tagline: 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! + text: + tagline: 아무 셸에나 적용할 수 있는 간결하고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! actions: - - theme: brand + - + theme: brand text: 시작하기 → link: ./guide/ features: - - + - title: 호환성 우선 details: 거의 모든 운영 체제의 거의 모든 셸에서 동작합니다. 모든 곳에서 사용해 보세요! - - + - title: Rust 기반 details: Rust의 최고 수준의 속도와 안정성으로 프롬프트를 가능한 한 빠르고 안정적으로 만들어 보세요. - - + - title: 커스텀 가능 details: 모든 사소한 디테일들을 마음대로 커스텀할 수 있어, 프롬프트를 원하는 만큼 간단하게 만들거나 기능이 풍부하게 만들 수 있습니다. footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: 크로스-셸 프롬프트" description: Starship은 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! 필요한 정보를 깔끔하고 간략하게 표시합니다. Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, 및 PowerShell에 빠르게 설치할 수 있습니다. --- -

    - -
    + ### 준비 사항 @@ -58,6 +57,7 @@ description: Starship은 아무 셸에나 적용할 수 있는 작고, 매우 ```sh brew install starship ``` + [Winget](https://github.com/microsoft/winget-cli)으로 설치: ```powershell @@ -157,6 +157,7 @@ description: Starship은 아무 셸에나 적용할 수 있는 작고, 매우 ::: 다음 내용을 Nushell env 파일 (찾으려면 Nushell에서 `$nu.env-path` 실행) 마지막 부분에 추가하세요: + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/ko-KR/advanced-config/README.md b/docs/ko-KR/advanced-config/README.md index 49006e12..b084813a 100644 --- a/docs/ko-KR/advanced-config/README.md +++ b/docs/ko-KR/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) 일부 셸은 입력과 같은 줄에 렌더링되는 오른쪽 프롬프트를 지원합니다. Starship에서는 `right_format` 옵션을 사용하여 오른쪽 프롬프트의 내용을 설정할 수 있습니다. `format`에서 사용할 수 있는 모든 모듈은 `right_format`에서도 지원됩니다. `$all` 변수는 `format` 또는 `right_format`에서 명시적으로 사용하지 않는 모듈만 포함합니다. -알림: 오른쪽 프롬프트는 입력 위치에 따라 한 줄로 표시됩니다. 여러 줄 프롬프트에서 입력 선 위의 모듈을 오른쪽 정렬하려면, [`fill` 모듈](../config/#fill)을 참고하세요. +알림: 오른쪽 프롬프트는 입력 위치에 따라 한 줄로 표시됩니다. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/ko-KR/config/README.md b/docs/ko-KR/config/README.md index d32ea029..8558d4f4 100644 --- a/docs/ko-KR/config/README.md +++ b/docs/ko-KR/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `기호` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | 예시 | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | 예시 | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| 기호 | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | 예시 | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| 기호 | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 예시 +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/ko-KR/guide/README.md b/docs/ko-KR/guide/README.md index 84c86983..90da03cd 100644 --- a/docs/ko-KR/guide/README.md +++ b/docs/ko-KR/guide/README.md @@ -40,11 +40,11 @@

    - 웹사이트 + 웹사이트 · 설치 · - 설정 + 설정

    @@ -171,7 +171,7 @@ - **쉬움:** 빠른 설치 - 몇 분만 투자하면 바로 사용할 수 있습니다.

    -Starship 문서 보기  ▶ +Starship 문서 보기  ▶

    @@ -431,10 +431,6 @@ Starship 을 만드는 데에 영감이 되었던 이전 작업들도 살펴보 이 [프로젝트를 후원](https://github.com/sponsors/starship)하여 프로젝트를 지원해 주세요. 여러분의 웹사이트로 이동하는 링크가 걸린 이름 혹은 로고가 여기에 걸립니다. -**후원자 티어** - -- [Appwrite](https://appwrite.io/) -


    Starship 로켓 아이콘 diff --git a/docs/nl-NL/README.md b/docs/nl-NL/README.md index 0d92c555..42829c8a 100644 --- a/docs/nl-NL/README.md +++ b/docs/nl-NL/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: De minimalistische, razend snelle en oneindig aanpasbare prompt voor elke shell! actions: - - theme: brand + - + theme: brand text: Get Started → link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### Benodigdheden @@ -58,6 +57,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/nl-NL/config/README.md b/docs/nl-NL/config/README.md index 328ab8c4..7b4f5106 100644 --- a/docs/nl-NL/config/README.md +++ b/docs/nl-NL/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Example | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/nl-NL/guide/README.md b/docs/nl-NL/guide/README.md index 31f01227..4f92b22a 100644 --- a/docs/nl-NL/guide/README.md +++ b/docs/nl-NL/guide/README.md @@ -35,16 +35,16 @@ Stand With Ukraine

    - Website + Website · Installatie · - Configuratie + Configuratie

    @@ -124,7 +124,7 @@ >Українська   -Verken de Starship-documentatie  ▶ +Verken de Starship-documentatie  ▶

    @@ -180,7 +180,7 @@ ### Benodigdheden -- A [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal (for example, try the [FiraCode Nerd Font](https://www.nerdfonts.com/font-downloads)). +- Een [Nerd Font](https://www.nerdfonts.com/) is geïnstalleerd en ingeschakeld in je terminal (probeer bijvoorbeeld het [Firacode Nerd Font](https://www.nerdfonts.com/font-downloads)). ### Stap 1. Installeer Starship @@ -202,11 +202,11 @@ Installeer Starship met één van de volgende pakketbeheerders: Installeer Starship met één van de volgende pakketbeheerders: -| Distribution | Repository | Instructies | -| ------------ | -------------------------------------------------------- | --------------------------------- | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | -| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` | +| Distributie | Repository | Instructies | +| ------------------ | -------------------------------------------------------- | --------------------------------- | +| **_Eender welke_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | +| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` |
    @@ -219,13 +219,13 @@ Install the latest version for your system: curl -sS https://starship.rs/install.sh | sh ``` -Alternatively, install Starship using any of the following package managers: +Als alternatief kan je Starship installeren met een van de volgende pakketbeheerders: -| Distribution | Repository | Instructies | +| Distributie | Repository | Instructies | | ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| _Any_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | -| _Any_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | +| **_Eender welke_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| _Eender welke_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| _Eender welke_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | | Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | | Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | | CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
    `dnf install starship` | @@ -246,7 +246,7 @@ Install the latest version for your system: curl -sS https://starship.rs/install.sh | sh ``` -Alternatively, install Starship using any of the following package managers: +Als alternatief kan je Starship installeren met een van de volgende pakketbeheerders: | Repository | Instructies | | -------------------------------------------------------- | --------------------------------------- | @@ -260,7 +260,7 @@ Alternatively, install Starship using any of the following package managers:
    Windows -Install the latest version for your system with the MSI-installers from the [releases section](https://github.com/starship/starship/releases/latest). +Installeer de nieuwste versie voor uw systeem met de MSI-installers van de [releases sectie](https://github.com/starship/starship/releases/latest). Installeer Starship met één van de volgende pakketbeheerders: @@ -431,10 +431,6 @@ Please check out these previous works that helped inspire the creation of starsh Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/no-NO/README.md b/docs/no-NO/README.md index 0d94d3ef..6f82d6a9 100644 --- a/docs/no-NO/README.md +++ b/docs/no-NO/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Minimal, blendende rask og uendelig tilpasningsdyktig ledetekst for alle skall! actions: - - theme: brand + - + theme: brand text: Get Started → link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### Nødvendig forutsetninger @@ -58,6 +57,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: Legg til følgende i slutten av Nushell env filen (finn den ved å kjøre `$nu.env-path` i Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/no-NO/config/README.md b/docs/no-NO/config/README.md index 328ab8c4..7b4f5106 100644 --- a/docs/no-NO/config/README.md +++ b/docs/no-NO/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Example | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/no-NO/guide/README.md b/docs/no-NO/guide/README.md index 918c93f8..9d680570 100644 --- a/docs/no-NO/guide/README.md +++ b/docs/no-NO/guide/README.md @@ -40,11 +40,11 @@

    - Nettside + Nettside · Installasjon · - Konfigurasjon + Konfigurasjon

    @@ -171,7 +171,7 @@ - **Lett:** raskt å installere - start å bruke det på minutter.

    -Utforsk Starship dokumentasjon  ▶ +Utforsk Starship dokumentasjon  ▶

    @@ -431,10 +431,6 @@ Please check out these previous works that helped inspire the creation of starsh Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/pl-PL/README.md b/docs/pl-PL/README.md index eb4861b3..828d2b1d 100644 --- a/docs/pl-PL/README.md +++ b/docs/pl-PL/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Minimalny, szybki i nieskończenie konfigurowalny wiersz poleceń dla dowolnej powłoki! actions: - - theme: brand + - + theme: brand text: Pierwsze kroki → link: ./guide/ features: - - + - title: Kompatybilność przede wszystkim details: Działa na większości powszechnych powłokach, na większości najpopularniejszych systemach. Używaj go wszędzie! - - + - title: Napędzany językiem Rust details: Zapewnia najlepszą w swojej klasie prędkość i bezpieczeństwo języka Rust, w celu zapewnienia jak najszybszej i niezawodnej odpowiedzi. - - + - title: Konfigurowalny details: Każdy mały detal jest konfigurowalny do Twoich preferencji, aby wiersz poleceń był tak minimalny lub tak bogaty w funkcje, jak tylko zechcesz. footer: Licencja ISC | Copyright © 2019-obecnie Kontrybutorzy Starship @@ -24,12 +25,10 @@ metaTitle: "Starship: Wiersz poleceń dla dowolnej powłoki" description: Starship to minimalny, szybki i ekstremalnie konfigurowalny wiersz poleceń dla każdej powłoki! Pokazuje informacje których potrzebujesz, pozostając elegancki i minimalny. Szybka instalacja dostępna dla powłok Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd i PowerShell. --- -

    - -
    + ### Wymagania wstępne @@ -58,6 +57,7 @@ description: Starship to minimalny, szybki i ekstremalnie konfigurowalny wiersz ```sh brew install starship ``` + Za pomocą [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship to minimalny, szybki i ekstremalnie konfigurowalny wiersz ::: Dodaj następujący kod na koniec twojego pliku env Nushell (możesz go znaleść za pomocą `$nu.env-path` w Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/pl-PL/config/README.md b/docs/pl-PL/config/README.md index 92291fa6..53200eee 100644 --- a/docs/pl-PL/config/README.md +++ b/docs/pl-PL/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: porada @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Zmienne | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Zmienne | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Zmienne | Example | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Zmienne | Example | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: porada @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/pl-PL/guide/README.md b/docs/pl-PL/guide/README.md index bc313993..0d95f87b 100644 --- a/docs/pl-PL/guide/README.md +++ b/docs/pl-PL/guide/README.md @@ -40,11 +40,11 @@

    - Strona internetowa + Strona internetowa · Instalacja · - Konfiguracja + Konfiguracja

    @@ -171,7 +171,7 @@ - **Łatwy w obsłudze:** szybka instalacja - zacznij korzystać w kilka minut.

    -Przeglądaj dokumentację Starship  ▶ +Przeglądaj dokumentację Starship  ▶

    @@ -431,10 +431,6 @@ Zapoznaj się z wcześniejszymi projektami, które zainspirowały nas do stworze Wspomóż ten projekt [stając się sponsorem](https://github.com/sponsors/starship). Twoja nazwa bądź logo pojawi się tutaj wraz z linkiem do Twojej witryny. -**Poziom Supporter** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/pl-PL/installing/README.md b/docs/pl-PL/installing/README.md index 6f7a0408..fb70353d 100644 --- a/docs/pl-PL/installing/README.md +++ b/docs/pl-PL/installing/README.md @@ -5,7 +5,7 @@ Aby zainstalować starship, musisz zrobić dwie rzeczy: 1. Pobrać plik wykonywalny **starship** na swój komputer 1. Skonfigurować swoją powłokę żeby używała pliku wykonywalnego starship jako wiersza poleceń poprzez modyfikację skryptów inicjalizacyjnych -Dla większości użytkowników instrukcje na [stronie głównej](../guide/#🚀-installation) są wystarczające. Jednakże, dla niektórych wyspecjalizowanych platform, potrzebne będą inne. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. Jednakże, dla niektórych wyspecjalizowanych platform, potrzebne będą inne. Istnieje tak wiele platform, że nie zmieściły się one w głównym pliku README.md, więc poniżej znajdują się instrukcje instalacji dla innych platform od społeczności. Nie ma tutaj Twojej? Jeśli się o tym dowiesz, dodaj je tutaj! diff --git a/docs/pt-BR/README.md b/docs/pt-BR/README.md index ec8274a0..20ee29d6 100644 --- a/docs/pt-BR/README.md +++ b/docs/pt-BR/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: O prompt minimalista, extremamente rápido e infinitamente personalizável para qualquer shell! actions: - - theme: brand + - + theme: brand text: Primeiros passos → link: ./guide/ features: - - + - title: Compatibilidade primeiro details: Funciona nos principais shells nos principais sistemas operacionais. Use em qualquer lugar! - - + - title: Poder do Rust details: Tenha o melhor da velocidade e segurança do Rust, para tornar seu prompt o mais rápido e confiável possível. - - + - title: Personalizável details: Cada pequeno detalhe é personalizável ao seu gosto, para tornar esse prompt o mínimo possível ou rico em recursos, como você preferir. footer: Licenciado pelo ISC | Todos os direitos reservados © 2019-Presente | Contribuidores Starship @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: O Starship é o prompt minimalista, extremamente rápido e extremamente personalizável para qualquer shell! Mostra as informações que você precisa, mantendo-se elegante e minimalista. Instalação rápida disponível para Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd e PowerShell. --- -

    - -
    + ### Pré-requisitos @@ -58,6 +57,7 @@ description: O Starship é o prompt minimalista, extremamente rápido e extremam ```sh brew install starship ``` + Com o [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: O Starship é o prompt minimalista, extremamente rápido e extremam ::: Adicione o seguinte ao final do seu arquivo env do Nushell (enconte-o rodando `$nu.env-path` no Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/pt-BR/advanced-config/README.md b/docs/pt-BR/advanced-config/README.md index ea6fabd2..4169424b 100644 --- a/docs/pt-BR/advanced-config/README.md +++ b/docs/pt-BR/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Alguns shells suportam um prompt direito que é renderizado na mesma linha que a entrada. Starship pode definir o conteúdo do prompt correto usando a opção `right_format`. Qualquer módulo que pode ser usado no `format` também é compatível com `right_format`. A variável `$all` conterá apenas módulos não usado explicitamente em `format` ou `right_format`. -Nota: O prompt direito é uma única linha após o local de entrada. Para alinhar módulos à direita acima da linha de entrada em um prompt de várias linhas, consulte o [módulo `fill`](../config/#fill). +Nota: O prompt direito é uma única linha após o local de entrada. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/pt-BR/config/README.md b/docs/pt-BR/config/README.md index 8f6a9ffd..ad3b7aa7 100644 --- a/docs/pt-BR/config/README.md +++ b/docs/pt-BR/config/README.md @@ -106,7 +106,7 @@ format = ''' \$''' -# com string básica multilinha +# com string básica multilinha format = """ \\$""" @@ -158,7 +158,7 @@ Por exemplo: #### Estilo dos textos -A maioria dos módulos no starship permite que você configure seus estilos de exibição. Isso é feito com uma entrada (normalmente chamada de `estilo`) que é uma string especificando a configuração. Aqui estão alguns exemplos de strings de estilo junto com o que elas fazem. Para obter detalhes sobre a sintaxe completa, consulte o [guia de configuração avançada](../advanced-config/). +A maioria dos módulos no starship permite que você configure seus estilos de exibição. Isso é feito com uma entrada (normalmente chamada de `estilo`) que é uma string especificando a configuração. Aqui estão alguns exemplos de strings de estilo junto com o que elas fazem. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `"fg:green bg:blue"` define o texto para verde e o fundo azul - `"bg:blue fg:bright-green"` define o texto para verde brilhante e o fundo azul @@ -197,16 +197,16 @@ Esta é a lista de opções de configuração em todo o prompt. ### Opções -| Opções | Padrão | Descrição | -| ----------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configura o formato do prompt. | -| `right_format` | `''` | Veja [Ativa o prompt direito](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Tempo limite para escanear arquivos (em milissegundos). | -| `command_timeout` | `500` | Tempo limite de execução de comandos pelo starship (em milissegundos). | -| `add_newline` | `true` | Insere linha vazia entre os prompts do shell. | -| `palette` | `''` | Define qual a paleta de cores de `palettes` será usada. | -| `palettes` | `{}` | Coleção de paletas de cores que atribuem [cores](../advanced-config/#style-strings) aos nomes definidos pelo usuário. Note que paletas de cores não podem referir-se a suas próprias definições de cores. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| Opções | Padrão | Descrição | +| ----------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configura o formato do prompt. | +| `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | +| `scan_timeout` | `30` | Tempo limite para escanear arquivos (em milissegundos). | +| `command_timeout` | `500` | Tempo limite de execução de comandos pelo starship (em milissegundos). | +| `add_newline` | `true` | Insere linha vazia entre os prompts do shell. | +| `palette` | `''` | Define qual a paleta de cores de `palettes` será usada. | +| `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note que paletas de cores não podem referir-se a suas próprias definições de cores. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ As variáveis a seguir podem ser usadas no `format`: | Variável | Descrição | | -------------- | ---------------------------------------------------------------------------------------------------------- | -| `all_status` | Atalhos para `$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Exibe `diverged`, `ahead`, `behind` or `up_to_date` conforme o formato da string do status do repositório. | | `conflicted` | Exibe `conflicted` quando este braço tenha conflitos no merge. | | `untracked` | Exibe `untracked` quando há arquivos não rastreados no diretório atual. | @@ -3356,7 +3357,7 @@ O módulo `python` exibe a versão atual instalada do [Python](https://www.pytho Se o `pyenv_version_name` estiver definido como `true`, será exibido o nome da versão do pyenv. Caso contrario, ele exibirá o número da versão do `python --version`. -Por padrão o módulo vai exibir se uma das condições a seguir for atendida: +Por padrão, o módulo será exibido se qualquer das seguintes condições for atendida: - O diretório atual tenha um arquivo `.python-version` - O diretório atual tenha um arquivo `Pipfile` @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Exibe a versão do python de dentro de um venv local. -# -# Note que isso só funcionará quando o venv estiver dentro do projeto e só -# funcionará apenas no diretório que contém o diretório venv, mas talvez isso seja ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +Por padrão, o módulo será exibido se qualquer das seguintes condições for atendida: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Opções + +| Opções | Padrão | Descrição | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | O formato do módulo. | +| `version_format` | `'v${raw}'` | A versão formatada. As variáveis disponíveis são `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | O estilo do módulo. | +| `detect_extensions` | `['.qmd']` | Quais extensões devem ativar este módulo. | +| `detect_files` | `['_quarto.yml']` | Quais nomes de arquivos devem ativar este módulo. | +| `detect_folders` | `[]` | Quais pastas devem ativar este módulo. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variáveis + +| Variável | Exemplo | Descrição | +| --------- | --------- | --------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Espelha o valor da opção `symbol` | +| style\* | | Espelha o valor da opção `style` | + +*: Esta variável só pode ser usada como parte de uma string de estilo ## R @@ -3584,11 +3606,12 @@ O Starship pega a versão atual do Ruby rodando `ruby -v`. ### Variáveis -| Variável | Exemplo | Descrição | -| --------- | -------- | --------------------------------- | -| version | `v2.5.1` | A versão do `ruby` | -| symbol | | Espelha o valor da opção `symbol` | -| style\* | | Espelha o valor da opção `style` | +| Variável | Exemplo | Descrição | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | A versão do `ruby` | +| symbol | | Espelha o valor da opção `symbol` | +| style\* | | Espelha o valor da opção `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Esta variável só pode ser usada como parte de uma string de estilo @@ -4183,6 +4206,7 @@ O módulo `username` mostra o nome de usuário do usuário ativo. O módulo ser - O usuário atual não é o mesmo que está logado - O usuário atual esta conectado em uma sessão SSH - A variável `show_always` esta definida como true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ Conexões SSH são detectadas checando as variáveis de ambiente `SSH_CONNECTION ### Opções -| Opções | Padrão | Descrição | -| ------------- | ----------------------- | --------------------------------------------- | -| `style_root` | `'bold red'` | O estilo usado quando o usuário é root/admin. | -| `style_user` | `'bold yellow'` | O estilo usado para usuários não root. | -| `format` | `'[$user]($style) in '` | O formato do módulo. | -| `show_always` | `false` | Sempre exibe o módulo `username`. | -| `disabled` | `false` | Desabilita o módulo `username`. | +| Opções | Padrão | Descrição | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | O estilo usado quando o usuário é root/admin. | +| `style_user` | `'bold yellow'` | O estilo usado para usuários não root. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | O formato do módulo. | +| `show_always` | `false` | Sempre exibe o módulo `username`. | +| `disabled` | `false` | Desabilita o módulo `username`. | ### Variáveis @@ -4209,6 +4234,8 @@ Conexões SSH são detectadas checando as variáveis de ambiente `SSH_CONNECTION ### Exemplo +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant O módulo `vagrant` exibe a versão atual instalada do [Vagrant](https://www.vagrantup.com/). Por padrão o módulo vai exibir se uma das condições a seguir for atendida: diff --git a/docs/pt-BR/faq/README.md b/docs/pt-BR/faq/README.md index 3fb3a62c..1c97f803 100644 --- a/docs/pt-BR/faq/README.md +++ b/docs/pt-BR/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Porque eu vejo alertas de `Executing command "..." timed out.`? -O Starship executa comandos diferentes para recuperar as informações para exibir no prompt, por exemplo a versão de um programa ou o status atual do git. Para ter certeza de que o starship não travou durante uma execução destes comandos nos definimos um limite de tempo, se um comando ultrapassar este limite o starship vai parar a execução do comando e exibe o alerta acima, esse é um comportamento esperado. Este limite de tempo é configurado usando o [`command_timeout`key](../config/#prompt) então se você quiser você pode aumentar este limite. Você pode também seguir os passos para debugar para ver qual comando esta demorando e se você pode otimizar ele. Finalmente você pode definir a variável de ambiente `STARSHIP_LOG` para `error` para esconder estes alertas. +O Starship executa comandos diferentes para recuperar as informações para exibir no prompt, por exemplo a versão de um programa ou o status atual do git. Para ter certeza de que o starship não travou durante uma execução destes comandos nos definimos um limite de tempo, se um comando ultrapassar este limite o starship vai parar a execução do comando e exibe o alerta acima, esse é um comportamento esperado. Este limite de tempo é configurado usando a [chave](../config/#prompt) `command_timeout` então se você quiser você pode aumentar este limite. Você pode também seguir os passos para debugar para ver qual comando esta demorando e se você pode otimizar ele. Finalmente você pode definir a variável de ambiente `STARSHIP_LOG` para `error` para esconder estes alertas. ## Eu vejo símbolos que não entendo ou não esperado, o que isso significa? diff --git a/docs/pt-BR/guide/README.md b/docs/pt-BR/guide/README.md index 2113c713..f28401c8 100644 --- a/docs/pt-BR/guide/README.md +++ b/docs/pt-BR/guide/README.md @@ -40,11 +40,11 @@

    - Site + Site · Instalação · - Configuração + Configuração

    @@ -171,7 +171,7 @@ - **Fácil:**Instalação rápida – comece a usar em minutos.

    -Consulte a documentação  ▶ +Consulte a documentação  ▶

    @@ -431,10 +431,6 @@ Por favor, confira esses trabalhos anteriores que ajudaram a inspirar a criaçã Apoie este projeto [tornando-se um patrocinador](https://github.com/sponsors/starship). O seu nome ou logotipo aparecerá aqui com um link para o seu site. -**Rank de Apoiadores** - -- [Appwrite](https://appwrite.io/) -


    Ícone de foguete do Starship diff --git a/docs/pt-BR/installing/README.md b/docs/pt-BR/installing/README.md index 8decd90d..9380f9a6 100644 --- a/docs/pt-BR/installing/README.md +++ b/docs/pt-BR/installing/README.md @@ -5,7 +5,7 @@ Para instalar o starship, você precisa de duas coisas: 1. O binário do **Starship** em seu computador 1. Altere seu shell para usar o binário do starship como seu prompt alterando os scripts init -Para a maioria dos usuários as instruções na [pagina principal](../guide/#🚀-installation) irá funcionar perfeitamente. No entanto para algumas plataformas mais especificas, instruções diferentes são necessárias. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. No entanto para algumas plataformas mais especificas, instruções diferentes são necessárias. Existem tantas plataformas que elas não cabem no arquivo README.md principal, então aqui estão algumas instruções de instalação para outras plataformas da comunidade. A sua não está aqui? Por favor, adicione-o aqui se você descobrir! diff --git a/docs/pt-PT/README.md b/docs/pt-PT/README.md index 5e34dbae..baeca74a 100644 --- a/docs/pt-PT/README.md +++ b/docs/pt-PT/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell! actions: - - theme: brand + - + theme: brand text: Get Started → link: ./guide/ features: - - + - title: Compatibility First details: Works on the most common shells on the most common operating systems. Use it everywhere! - - + - title: Rust-Powered details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible. - - + - title: Customizable details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be. footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### Prerequisites @@ -58,6 +57,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship is the minimal, blazing fast, and extremely customizable p ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/pt-PT/config/README.md b/docs/pt-PT/config/README.md index 328ab8c4..7b4f5106 100644 --- a/docs/pt-PT/config/README.md +++ b/docs/pt-PT/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Example | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/pt-PT/guide/README.md b/docs/pt-PT/guide/README.md index f567beea..29fbbb3c 100644 --- a/docs/pt-PT/guide/README.md +++ b/docs/pt-PT/guide/README.md @@ -40,11 +40,11 @@

    - Website + Website · Installation · - Configuration + Configuration

    @@ -171,7 +171,7 @@ - **Easy:** quick to install – start using it in minutes.

    -Explore the Starship docs  ▶ +Explore the Starship docs  ▶

    @@ -431,10 +431,6 @@ Please check out these previous works that helped inspire the creation of starsh Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/ru-RU/README.md b/docs/ru-RU/README.md index ef1da373..5f18a1f6 100644 --- a/docs/ru-RU/README.md +++ b/docs/ru-RU/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Минималистичное, быстрое и бесконечно настраиваемое приглашение командной строки для любой оболочки! actions: - - theme: brand + - + theme: brand text: Начало работы → link: ./guide/ features: - - + - title: Совместивость в первую очередь details: Работает на большинстве распространенных оболочек и наиболее распространенных операционных системах. Используйте везде! - - + - title: Основана на Rust details: Приносит наилучшую в своем классе скорость и безопасность Rust, чтобы сделать вашу оболочку как можно быстрее и надежнее. - - + - title: Настраиваемая details: Каждая маленькая деталь настраивается по вашему вкусу, чтобы сделать эту оболочку минималистичной или функциональной, как вы захотите. footer: Под лицензией ISC | Авторское право © 2019-настоящее Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship - минимальная, быстрая и бесконечная настраиваемая командная строка для любой оболочки! Показывает нужную вам информацию, оставаясь красивой и минималистичной. Быстрая установка доступна для Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, и PowerShell. --- -

    - -
    + ### Обязательные условия @@ -58,6 +57,7 @@ description: Starship - минимальная, быстрая и бесконе ```sh brew install starship ``` + С помощью [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship - минимальная, быстрая и бесконе ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/ru-RU/config/README.md b/docs/ru-RU/config/README.md index 8abcb70e..a27a0257 100644 --- a/docs/ru-RU/config/README.md +++ b/docs/ru-RU/config/README.md @@ -158,7 +158,7 @@ line2 #### Строки стиля -В Starship, большинство модулей позволяют настроить стили отображения. Это делается записью (обычно называется `style`), которая представляет собой строку, определяющую конфигурацию. Ниже приведены несколько примеров стилей строк, а также, их действия. Подробнее о полном синтаксисе можно прочитать в [расширенном разделе конфигурации](../advanced-config/). +В Starship, большинство модулей позволяют настроить стили отображения. Это делается записью (обычно называется `style`), которая представляет собой строку, определяющую конфигурацию. Ниже приведены несколько примеров стилей строк, а также, их действия. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] ### Опции -| Параметр | По умолчанию | Описание | -| ----------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [ссылка](#default-prompt-format) | Настройка форматирования оболочки. | +| Параметр | По умолчанию | Описание | +| ----------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [ссылка](#default-prompt-format) | Настройка форматирования оболочки. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Тайм-аут запуска сканирования файлов (в миллисекундах). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Тайм-аут запуска сканирования файлов (в миллисекундах). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Переменная | Описание | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - Текущий каталог содержит файл `.python-version` - Текущий каталог содержит файл `Pipfile` @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Опции + +| Параметр | По умолчанию | Описание | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Стиль модуля. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Переменные + +| Переменная | Пример | Описание | +| ---------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Отражает значение параметра `symbol` | +| style\* | | Отражает значение параметра `style` | + +*: Эта переменная может использоваться только в качестве части строки style ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Переменные -| Переменная | Пример | Описание | -| ---------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Отражает значение параметра `symbol` | -| style\* | | Отражает значение параметра `style` | +| Переменная | Пример | Описание | +| ---------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Отражает значение параметра `symbol` | +| style\* | | Отражает значение параметра `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Эта переменная может использоваться только в качестве части строки style @@ -4183,6 +4206,7 @@ By default, the module will be shown if any of the following conditions are met: - Текущий пользователь отличается от залогиненного - Пользователь подключен к SSH-сессии - Переменная `show_always` равна true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Опции -| Параметр | По умолчанию | Описание | -| ------------- | ----------------------- | ------------------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | Стиль, используемый для всех пользователей, кроме root. | -| `format` | `'[$user]($style) in '` | Формат модуля. | -| `show_always` | `false` | Всегда показывать модуль `username`. | -| `disabled` | `false` | Отключает модуль `username`. | +| Параметр | По умолчанию | Описание | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | Стиль, используемый для всех пользователей, кроме root. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | Формат модуля. | +| `show_always` | `false` | Всегда показывать модуль `username`. | +| `disabled` | `false` | Отключает модуль `username`. | ### Переменные @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Пример +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/ru-RU/guide/README.md b/docs/ru-RU/guide/README.md index a7614592..dbdf5b2d 100644 --- a/docs/ru-RU/guide/README.md +++ b/docs/ru-RU/guide/README.md @@ -40,11 +40,11 @@

    - Сайт + Сайт · Установка · - Конфигурация + Конфигурация

    @@ -171,7 +171,7 @@ - **Легкая:** быстрая установка - начните использовать ее в считанные минуты.

    -Изучите документацию Starship  ▶ +Изучите документацию Starship  ▶

    @@ -431,10 +431,6 @@ eval "$(starship init zsh)" Поддержите этот проект, [став спонсором](https://github.com/sponsors/starship). Ваше имя или логотип будут отображаться здесь со ссылкой на ваш сайт. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Иконка ракеты Starship diff --git a/docs/tr-TR/README.md b/docs/tr-TR/README.md index 6eeb9c5f..f7dac204 100644 --- a/docs/tr-TR/README.md +++ b/docs/tr-TR/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Sade, hızlı, dilediğiniz gibi özelleştirilebilen ve istenilen shell'de kullanılabilen prompt! actions: - - theme: brand + - + theme: brand text: Kullanmaya Başlayın → link: ./guide/ features: - - + - title: Önce Uyumluluk details: En yaygın işletim sistemlerindeki en yaygın shell'ler üzerinde çalışır. Use it everywhere! - - + - title: Rust-Powered details: Prompt'u mümkün olduğunca hızlı ve güvenilir hale getirmek için sınıfının en iyisi Rust hızını ve güvenliğini sağlar. - - + - title: Özelleştirilebilir details: Her küçük ayrıntı beğeninize göre özelleştirilebilir, böylece bu prompt'u istediğiniz kadar minimal veya zengin özelliklere sahip hale getirirsiniz. footer: ISC Lisanslı | Telif Hakkı © 2019-günümüz Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship, her prompt için minimal, son derece hızlı ve son derece özelleştirilebilir bir shelldir! Şık ve minimal kalırken ihtiyacınız olan bilgileri gösterir. Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd ve PowerShell için hızlı kurulum mevcuttur. --- -

    - -
    + ### Ön koşullar @@ -58,6 +57,7 @@ description: Starship, her prompt için minimal, son derece hızlı ve son derec ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship, her prompt için minimal, son derece hızlı ve son derec ::: Nushell env dosyanızın sonuna aşağıdakileri ekleyin (Nushell'de `$nu.env-path` komutunu çalıştırarak bulabilirsiniz): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/tr-TR/advanced-config/README.md b/docs/tr-TR/advanced-config/README.md index 2a616245..9f00d7f2 100644 --- a/docs/tr-TR/advanced-config/README.md +++ b/docs/tr-TR/advanced-config/README.md @@ -137,7 +137,7 @@ echo "🚀" starship_precmd_user_func="fırlatıldı" ``` -- Özel bir işlemi başlatmadan hemen önce komut istemini çalıştırıp, [`DEBUG`filtreleme mekanizmasını](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/) kullanabilirsiniz. Bununla birlikte, Starship başlatılmadan hemen _önce_, DEBUG sinyalini filtrelemek **zorundasınız**! Starship, DEBUG filtrelemesinin ardından bazı değerleri içerisinde barındırabilir ancak filtreleme işlemi starship başlatıldıktan sonra yazılırsa bazı fonksiyonlar devre dışı kalabilir. +- Özel bir işlemi başlatmadan hemen önce komut istemini çalıştırıp, [`DEBUG`filtreleme mekanizmasını](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/) kullanabilirsiniz. Bununla birlikte, Starship başlatılmadan hemen _önce_, DEBUG sinyalini filtrelemek**zorundasınız.**! Starship, DEBUG filtrelemesinin ardından bazı değerleri içerisinde barındırabilir ancak filtreleme işlemi starship başlatıldıktan sonra yazılırsa bazı fonksiyonlar devre dışı kalabilir. ```bash function blastoff(){ diff --git a/docs/tr-TR/config/README.md b/docs/tr-TR/config/README.md index 96c40ec3..f4670b6b 100644 --- a/docs/tr-TR/config/README.md +++ b/docs/tr-TR/config/README.md @@ -197,16 +197,16 @@ This is the list of prompt-wide configuration options. ### Options -| Option | Default | Description | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | +| Option | Default | Description | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | Variable | Description | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `stil` | `'bold #75AADB'` | The style for the module. | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Variables + +| Variable | Example | Description | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Variables -| Variable | Example | Description | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| Variable | Example | Description | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. The module will be shown if - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Options -| Option | Default | Description | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Option | Default | Description | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Variables @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Example +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/tr-TR/guide/README.md b/docs/tr-TR/guide/README.md index 7f639186..9b5ffd19 100644 --- a/docs/tr-TR/guide/README.md +++ b/docs/tr-TR/guide/README.md @@ -40,11 +40,11 @@

    - Website + Website · Kurulum · - Yapılandırma + Yapılandırma

    @@ -171,7 +171,7 @@ - **Kolay:** hızlı kurulum -  dakikalar içinde kullanmaya başla.

    -Starship dokümantasyonunu incele   ▶ +Starship dokümantasyonunu incele   ▶

    @@ -431,10 +431,6 @@ Lütfen starship'in oluşmasında ilham kaynağı olan çalışmalara da göz at Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. -**Supporter Tier** - -- [Appwrite](https://appwrite.io/) -


    Starship roket simgesi diff --git a/docs/tr-TR/installing/README.md b/docs/tr-TR/installing/README.md index bd3be65e..7164823a 100644 --- a/docs/tr-TR/installing/README.md +++ b/docs/tr-TR/installing/README.md @@ -5,7 +5,7 @@ Starship'i kurmak için, 2 şeye ihtiyacınız var: 1. **Starship** binary dosyalarını bilgisayarınıza alın 1. Kabuğunuza Starship binary scriptini kullanmasını söyleyin -Çoğu kullanıcı için, [ana sayfadaki](../guide/#🚀-installation) talimatlar gayet iyi çalışacaktır. Fakat, bazı özel platformlar için, farklı talimatlara ihtiyaç vardır. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. Fakat, bazı özel platformlar için, farklı talimatlara ihtiyaç vardır. Birçok platform var ki ana sisteme uymuyorlar. README.md belgesi ile diğer platformlar için bazı kurulum talimatları. Seninki burada değil mi? Anlarsan lütfen buraya ekle! diff --git a/docs/uk-UA/README.md b/docs/uk-UA/README.md index c654da98..e85fc1f0 100644 --- a/docs/uk-UA/README.md +++ b/docs/uk-UA/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки! actions: - - theme: brand + - + theme: brand text: Початок роботи → link: ./guide/ features: - - + - title: Сумісність на першому місці details: Працює з більшістю оболонок у всіх популярних операційних системах. Можна використовувати будь-де! - - + - title: Rust під капотом details: Використовує найкращу в класі швидкість та безпеку застосунків створених за допомогою Rust, що робить ваш командний рядок швидким та надійним. - - + - title: Персоналізація details: Кожна дрібничка налаштовується відповідно до ваших потреб, щоб зробити командний рядок аскетичним чи багатофункціональним, таким, яким ви б хотіли б його бачити. footer: Ліцензія ISC | Авторське право © 2019-по сьогодні Учасники Starship @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки! Показує потрібну інформацію залишаючись блискучим та мінімальним. Швидке встановлення доступне для Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd і PowerShell. --- -

    - -
    + ### Вимоги @@ -58,6 +57,7 @@ description: Простий, супер швидкий та безмежно а ```sh brew install starship ``` + [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Простий, супер швидкий та безмежно а ::: Додайте наступне в кінець вашого файлу env (його можна знайти за допомогою змінної `$nu.env-path` в Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/uk-UA/advanced-config/README.md b/docs/uk-UA/advanced-config/README.md index a1e385e5..0550015e 100644 --- a/docs/uk-UA/advanced-config/README.md +++ b/docs/uk-UA/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) Деякі оболонки підтримують вивід командного рядка праворуч. Starship може встановити вміст правої частини командного рядка за допомогою параметра `right_format`. Будь-який модуль, який можна використовувати у `format`, також підтримується у `right_format`. Змінна `$all` міститиме лише модулі, які явно не використовується, а ні в `format`, а ні в `right_format`. -Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте модуль [`fill`](../config/#fill). +Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте [модуль `fill`](../config/#fill). `right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/uk-UA/config/README.md b/docs/uk-UA/config/README.md index 480aa197..6aec18e6 100644 --- a/docs/uk-UA/config/README.md +++ b/docs/uk-UA/config/README.md @@ -200,12 +200,12 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] | Параметр | Стандартно | Опис | | ----------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `format` | [link](#default-prompt-format) | Налаштовує формат командного рядка. | -| `right_format` | `''` | Див [Увімкнути командний рядок праворуч](../advanced-config/#enable-right-prompt) | +| `right_format` | `''` | Дивіться [Увімкнути вивід праворуч](../advanced-config/#enable-right-prompt) | | `scan_timeout` | `30` | Тайм-аут для сканування файлів (у мілісекундах). | | `command_timeout` | `500` | Тайм-аут для команд, виконаних starship (у мілісекундах). | | `add_newline` | `true` | Вставити порожній рядок між командними рядками в оболонці. | | `palette` | `''` | Встановлює кольорову палітру використовуючи `palettes`. | -| `palettes` | `{}` | Колекція кольорових палітр, для призначення [кольорів](../advanced-config/#style-strings) до назв визначених користувачем. Зверніть увагу, що кольорові палітри не можуть посилатися на їх власні визначення кольору. | +| `palettes` | `{}` | Колекція колірних палітр, для призначення [кольорів](../advanced-config/#style-strings) до назв визначених користувачем. Зверніть увагу, що кольорові палітри не можуть посилатися на їх власні визначення кольору. | | `follow_symlinks` | `true` | Перевіряти символічні посилання чи вони посилаються на теки; використовується в таких модулях як git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' | Змінна | Опис | | -------------- | --------------------------------------------------------------------------------------------------- | -| `all_status` | Скорочення для `$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Скорочення для `$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Показує `diverged`, `ahead`, `behind` чи `up_to_date` в залежності від поточного стану репозиторію. | | `conflicted` | Показує `conflicted`, коли поточна гілка має конфлікт злиття. | | `untracked` | Показує `untracked` коли в робочій теці є файли що ще не включені до відстеження у репозиторії. | @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Показувати версію python з venv. -# -# Зауважте, що це працюватиме лише тоді, коли venv знаходиться всередині проєкту, і він працюватиме -# лише в теці, яка містить теку venv, якщо це нормально? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +Типово, модуль показується, якщо виконується будь-яка з наступних умов: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Параметри + +| Параметр | Стандартно | Опис | +| ------------------- | ------------------------------------ | ----------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. | +| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Стиль модуля. | +| `detect_extensions` | `['.qmd']` | Які розширення повинні запускати цей модуль. | +| `detect_files` | `['_quarto.yml']` | Які імена файлів мають запускати цей модуль. | +| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Змінні + +| Змінна | Приклад | Опис | +| --------- | --------- | ---------------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Віддзеркалює значення параметра `symbol` | +| style\* | | Віддзеркалює значення параметра `style` | + +*: Ця змінна може бути використана лише як частина стилю рядка ## R @@ -3584,11 +3606,12 @@ Starship отримує поточну версію Ruby командою `ruby ### Змінні -| Змінна | Приклад | Опис | -| --------- | -------- | ---------------------------------------- | -| version | `v2.5.1` | Версія `ruby` | -| symbol | | Віддзеркалює значення параметра `symbol` | -| style\* | | Віддзеркалює значення параметра `style` | +| Змінна | Приклад | Опис | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | Версія `ruby` | +| symbol | | Віддзеркалює значення параметра `symbol` | +| style\* | | Віддзеркалює значення параметра `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Ця змінна може бути використана лише як частина стилю рядка @@ -4183,6 +4206,7 @@ time_range = '10:00:00-14:00:00' - Поточний користувач не є таким же, як той, який увійшов до системи - Користувач зараз підключений через SSH - Змінна `show_always` встановлена в true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ time_range = '10:00:00-14:00:00' ### Параметри -| Параметр | Стандартно | Опис | -| ------------- | ----------------------- | ---------------------------------------------------------- | -| `style_root` | `'bold red'` | Стиль, який використовується коли користувач є root/admin. | -| `style_user` | `'bold yellow'` | Стиль для звичайних користувачів. | -| `format` | `'[$user]($style) in '` | Формат модуля. | -| `show_always` | `false` | Завжди показувати модуль `username`. | -| `disabled` | `false` | Вимикає модуль `username`. | +| Параметр | Стандартно | Опис | +| ----------------- | ----------------------- | ---------------------------------------------------------- | +| `style_root` | `'bold red'` | Стиль, який використовується коли користувач є root/admin. | +| `style_user` | `'bold yellow'` | Стиль для звичайних користувачів. | +| `detect_env_vars` | `[]` | Які змінні середовища повинні запускати цей модуль. | +| `format` | `'[$user]($style) in '` | Формат модуля. | +| `show_always` | `false` | Завжди показувати модуль `username`. | +| `disabled` | `false` | Вимикає модуль `username`. | ### Змінні @@ -4209,6 +4234,8 @@ time_range = '10:00:00-14:00:00' ### Приклад +#### Завжди показувати hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Приховувати hostname для віддалених сеансів tmux + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant Модуль `vagrant` показує поточну встановлену версію [Vagrant](https://www.vagrantup.com/). Типово, модуль показується, якщо виконується будь-яка з наступних умов: diff --git a/docs/uk-UA/faq/README.md b/docs/uk-UA/faq/README.md index 613db64d..8a3f5f2d 100644 --- a/docs/uk-UA/faq/README.md +++ b/docs/uk-UA/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## Чому я бачу попередження `Executing command "..." timed out.`? -Starship виконує різні команди, щоб отримати інформацію для показу в командному рядку, наприклад версію програми або поточного статусу git. Щоб переконатися, що starship не підвис, намагаючись виконати ці команди, ми встановлюємо ліміт, якщо виконання команди займе більше часу, starship зупинить виконання команди та видасть попередження, це очікувана поведінка. Цей ліміт часу можна налаштувати за допомогою [ ключа `command_timeout`](../config/#prompt), так що, якщо ви хочете, ви можете збільшити ліміт часу. Ви можете також виконати дії для відлагодження, щоб побачити, яка команда є повільною і подивитися, чи ви можете її оптимізувати. Нарешті ви можете встановити `STARSHIP_LOG` у `error`, щоб приховати ці попередження. +Starship виконує різні команди, щоб отримати інформацію для показу в командному рядку, наприклад версію програми або поточного статусу git. Щоб переконатися, що starship не підвис, намагаючись виконати ці команди, ми встановлюємо ліміт, якщо виконання команди займе більше часу, starship зупинить виконання команди та видасть попередження, це очікувана поведінка. Цей ліміт часу можна налаштувати за допомогою [ключа `command_timeout`](../config/#prompt), так що, якщо ви хочете, ви можете збільшити ліміт часу. Ви можете також виконати дії для відлагодження, щоб побачити, яка команда є повільною і подивитися, чи ви можете її оптимізувати. Нарешті ви можете встановити `STARSHIP_LOG` у `error`, щоб приховати ці попередження. ## Я бачу якісь символи, але не розумію, що вони значать? diff --git a/docs/uk-UA/guide/README.md b/docs/uk-UA/guide/README.md index 377de794..064539c7 100644 --- a/docs/uk-UA/guide/README.md +++ b/docs/uk-UA/guide/README.md @@ -40,11 +40,11 @@

    - Вебсайт + Вебсайт · Встановлення · - Налаштування + Налаштування

    @@ -171,7 +171,7 @@ - **Простий:** швидка інсталяція дозволяє почати роботу за лічені хвилини.

    -Ознайомтесь з документацією Starship   ▶ +Ознайомтесь з документацією Starship   ▶

    @@ -431,10 +431,6 @@ eval "$(starship init zsh)" Підтримайте цей проєкт [ставши спонсором](https://github.com/sponsors/starship). Ваше імʼя або логотип показуватимуться тут з посиланням на ваш сайт. -**Підтримувачі** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/vi-VN/README.md b/docs/vi-VN/README.md index 34321796..8a62c9de 100644 --- a/docs/vi-VN/README.md +++ b/docs/vi-VN/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: Nhỏ gọn, cực nhanh, và khả năng tuỳ chỉnh vô hạn prompt cho bất kì shell nào! actions: - - theme: brand + - + theme: brand text: Bắt đầu → link: ./guide/ features: - - + - title: Khả năng tương thích details: Những công việc trên đa số các shell phổ biến trên đa số các hệ điều hành phổ biến. Sử dụng nó ở mọi nơi! - - + - title: Sức mạnh của Rust details: Mang lại tốc độ và độ an toàn tốt nhất của Rust, giúp prompt của bạn thực thi nhanh chóng và đáng tin cậy nhất có thể. - - + - title: Khả năng tuỳ biến details: Mọi chi tiết nhỏ được tuỳ biến theo ý thích của bạn, giúp prompt này nhỏ nhất có thể hoặc phong phú về tính năng như bạn muốn. footer: Cấp phép bởi ISC | Bản quyền © 2019-nay Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship là prompt nhỏ, cực nhanh, và khả năng tuỳ biến mạnh mẽ cho bất kì shell nào! Hiển thị thông tin bạn cần, trong khi vẫn giữ cho đẹp và nhỏ gọn. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### Yêu cầu @@ -58,6 +57,7 @@ description: Starship là prompt nhỏ, cực nhanh, và khả năng tuỳ biế ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship là prompt nhỏ, cực nhanh, và khả năng tuỳ biế ::: Thêm đoạn code dưới đây vào cuối file Nushell env của bạn (Bạn có thể tìm đường dẫn tới file Nushell env bằng cách chạy `$nu.env-path` trong Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/vi-VN/config/README.md b/docs/vi-VN/config/README.md index 6b9435b3..714edc02 100644 --- a/docs/vi-VN/config/README.md +++ b/docs/vi-VN/config/README.md @@ -158,7 +158,7 @@ Ví dụ: #### Các chuỗi kiểu -Đa số các module trong starship cho phép bạn cấu hình kiểu hiển thị của chúng. This is done with an entry (thường được gọi là `kiểu`) cái là một cuỗi cấu hình đặc biệt. Đây là vài ví dụ của các chuỗi kiểu cũng với những gì chúng làm. Cú pháp chi tiết đầy đủ, tham khảo [hướng dẫn cấu hình nâng cao](../advanced-config/). +Đa số các module trong starship cho phép bạn cấu hình kiểu hiển thị của chúng. This is done with an entry (thường được gọi là `kiểu`) cái là một cuỗi cấu hình đặc biệt. Đây là vài ví dụ của các chuỗi kiểu cũng với những gì chúng làm. For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ Cái này là danh sách các tuỳ chọn cho cấu hình prompt-wide. ### Các tuỳ chọn -| Tuỳ chọn | Mặc định | Mô tả | -| ----------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [link](#default-prompt-format) | Cấu hình định dạng của prompt. | +| Tuỳ chọn | Mặc định | Mô tả | +| ----------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [link](#default-prompt-format) | Cấu hình định dạng của prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout của starship cho việc quét các tập tin (tính theo milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Chèn dòng trắng giữa các dấu nhắc lệnh. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout của starship cho việc quét các tập tin (tính theo milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Chèn dòng trắng giữa các dấu nhắc lệnh. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ Các biến dưới đây có thể được sử dụng trong `format`: | Biến | Mô tả | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut cho `$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Hiển thị `conflicted` khi nhánh này có merge conflicts. | | `untracked` | Hiển thị `untracked` khi có tệp tin untracked trong thư mục làm việc. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -Mặc định module sẽ được hiển thị nếu có bất kì điều kiện nào dưới đây thoả mãn: +By default, the module will be shown if any of the following conditions are met: - The current directory contains a `.python-version` file - The current directory contains a `Pipfile` file @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### Các tuỳ chọn + +| Tuỳ chọn | Mặc định | Mô tả | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | Định dạng cho module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | Kiểu cho module. | +| `detect_extensions` | `['.qmd']` | Những tiện ích mở rộng nào sẽ kích hoạt mô-đun này. | +| `detect_files` | `['_quarto.yml']` | Những tên tệp nào sẽ kích hoạt mô-đun này. | +| `detect_folders` | `[]` | Những thư mục nào sẽ kích hoạt mô-đun này. | +| `disabled` | `false` | Disables the `quarto` module. | + +### Các biến + +| Biến | Ví dụ | Mô tả | +| --------- | --------- | -------------------------------- | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Giá trị ghi đè tuỳ chọn `symbol` | +| style\* | | Giá trị ghi đè của `style` | + +*: Biến này có thể chỉ được sử dụng như một phần của style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### Các biến -| Biến | Ví dụ | Mô tả | -| --------- | -------- | -------------------------------- | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Giá trị ghi đè tuỳ chọn `symbol` | -| style\* | | Giá trị ghi đè của `style` | +| Biến | Ví dụ | Mô tả | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Giá trị ghi đè tuỳ chọn `symbol` | +| style\* | | Giá trị ghi đè của `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: Biến này có thể chỉ được sử dụng như một phần của style string @@ -4183,6 +4206,7 @@ The `username` module shows active user's username. Module cho sẽ được hi - The current user isn't the same as the one that is logged in - The user is currently connected as an SSH session - The variable `show_always` is set to true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Các tuỳ chọn -| Tuỳ chọn | Mặc định | Mô tả | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | The style used for non-root users. | -| `format` | `'[$user]($style) in '` | Định dạng cho module. | -| `show_always` | `false` | Always shows the `username` module. | -| `disabled` | `false` | Disables the `username` module. | +| Tuỳ chọn | Mặc định | Mô tả | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | The style used for non-root users. | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | Định dạng cho module. | +| `show_always` | `false` | Always shows the `username` module. | +| `disabled` | `false` | Disables the `username` module. | ### Các biến @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### Ví dụ +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). Mặc định module sẽ được hiển thị nếu có bất kì điều kiện nào dưới đây thoả mãn: diff --git a/docs/vi-VN/guide/README.md b/docs/vi-VN/guide/README.md index 13a31929..c965df40 100644 --- a/docs/vi-VN/guide/README.md +++ b/docs/vi-VN/guide/README.md @@ -40,11 +40,11 @@

    - Website + Website · Cài đặt · - Cấu hình + Cấu hình

    @@ -171,7 +171,7 @@ - **Dễ dàng:** cài đặt nhanh chóng – bắt đầu sử dụng nó trong vài phút.

    -Khám phá tài liệu của Starship  ▶ +Khám phá tài liệu của Starship  ▶

    @@ -431,10 +431,6 @@ Xin hãy xem qua những công việc này trước đây, những thứ đã gi Hỗ trợ project này bằng việc [trở thành nhà tài trợ](https://github.com/sponsors/starship). Tên hoặc logo của nhà tài trợ sẽ được hiển thị với một liên kết dẫn tới trang web của họ. -**Nhà tài trợ ủng hộ** - -- [Appwrite](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/vi-VN/installing/README.md b/docs/vi-VN/installing/README.md index fed17391..e7b26d43 100644 --- a/docs/vi-VN/installing/README.md +++ b/docs/vi-VN/installing/README.md @@ -5,7 +5,7 @@ 1. Lấy tệp tin **starship** nhị phân về máy tính của bạn 1. Nói với shell của bạn để sử dụng tệp tin starship nhị phân như là prompt của nó bằng việc chỉnh sửa những đoạn mã khởi tạo của nó -Đối với đa số người dùng, các hướng dẫn trên [trang chính](../guide/#🚀-installation) sẽ làm việc tốt. Tuy nhiên, với một vài nền tảng đặc biệt hơn, các hướng dẫn khác nhau là cần thiết. +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. Tuy nhiên, với một vài nền tảng đặc biệt hơn, các hướng dẫn khác nhau là cần thiết. Có rất nhiều nền tảng bên ngoài, rằng chúng đã không khớp như trong tệp tin README.md, do đó đây là vài hướng dẫn cài đặt cho những nền tảng khác đến từ cộng đồng. Của bạn không có ở đây? Xin hãy thêm nó vào đây nếu bạn tìm ra nó! diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 3a01b614..ec91c61a 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: 轻量、迅速、客制化的高颜值终端! actions: - - theme: brand + - + theme: brand text: 快速上手 → link: ./guide/ features: - - + - title: 兼容性优先 details: Starship 可以在常见的操作系统和 shell 上运行。 尝试着在各种地方使用它吧! - - + - title: 基于 Rust details: Rust 特有的的速度与安全性,让你的提示尽可能的快速可靠。 - - + - title: 客制化 details: 每个小细节都可以按您喜欢的客制化,不论是最小化以求速度,还是更大以获得最完善的功能。 footer: ISC 许可 | 版权所有 © 2019至今 - Starship 贡献者 @@ -24,12 +25,10 @@ metaTitle: "Starship:可用于各种 Shell 的提示符" description: Starship是一款轻量、迅速、可客制化的高颜值终端! 只显示所需要的信息,将优雅和轻量化合二为一。 可以为Bash、Fish、ZSH、Ion、Tcsh、Elvish、Nu、Xonsh、Cmd和PowerShell执行快速安装。 --- -

    - -
    + ### 前置要求 @@ -58,6 +57,7 @@ description: Starship是一款轻量、迅速、可客制化的高颜值终端 ```sh brew install starship ``` + 使用 [ Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship是一款轻量、迅速、可客制化的高颜值终端 ::: 在您的 Nushell 环境文件的最后(使用 `$nu.env-path` 来获取它的路径),添加以下内容: + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/zh-CN/advanced-config/README.md b/docs/zh-CN/advanced-config/README.md index 79d6118a..45598936 100644 --- a/docs/zh-CN/advanced-config/README.md +++ b/docs/zh-CN/advanced-config/README.md @@ -223,7 +223,7 @@ Invoke-Expression (&starship init powershell) 一些 Shell 支持右侧提示, 它与输入区渲染在同一行。 使用 `right_format` 选项来设置 Starship 的右侧提示。 所有支持 `format` 的组件也同时支持 `right_format`。 未显式在 `format` 或 `right_format` 中使用的组件,会保存在变量 `$all` 中。 -注意:右侧提示和输入区显示在同一行。 如果需要在输入区的上方显示右对齐的组件,请查阅 [`fill` 组件](../config/#fill)。 +注意:右侧提示和输入区显示在同一行。 To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. diff --git a/docs/zh-CN/config/README.md b/docs/zh-CN/config/README.md index 39dd985a..e2c0110b 100644 --- a/docs/zh-CN/config/README.md +++ b/docs/zh-CN/config/README.md @@ -17,7 +17,7 @@ add_newline = true # 将提示符中的 '❯' 替换为 '➜' [character] # 此组件名称为 'character' -success_symbol = '[➜](bold green)' # 将 'success_symbol' 字段设置成颜色为 'bold green' 的 '➜' +success_symbol = '[➜](bold green)' # 将 'success_symbol' 字段设置成颜色为 'bold green' 的 '➜' # 禁用 'package' 组件,将其隐藏 [package] @@ -158,7 +158,7 @@ line2 #### 样式字符串 -Starship 中的大多数组件允许您为其设置显示样式。 显示样式可以通过一个字符串字段(一般是 `style`)来设置。 以下的例子给出了一些样式字符串并描述了它们的效果。 样式字符串的完整语法请查阅 [高级配置指南](../advanced-config/)。 +Starship 中的大多数组件允许您为其设置显示样式。 显示样式可以通过一个字符串字段(一般是 `style`)来设置。 以下的例子给出了一些样式字符串并描述了它们的效果。 For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] ### 配置项 -| 选项 | 默认值 | 描述 | -| ----------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [见下文](#default-prompt-format) | 配置提示符的格式。 | +| 选项 | 默认值 | 描述 | +| ----------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [见下文](#default-prompt-format) | 配置提示符的格式。 | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Starship 扫描文件的超时时间(单位:毫秒)。 | -| `command_timeout` | `500` | Startship 执行命令的超时时间(单位:毫秒)。 | -| `add_newline` | `true` | 在 shell 提示符之间插入空行。 | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Starship 扫描文件的超时时间(单位:毫秒)。 | +| `command_timeout` | `500` | Startship 执行命令的超时时间(单位:毫秒)。 | +| `add_newline` | `true` | 在 shell 提示符之间插入空行。 | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | 字段 | 描述 | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww 如果`pyenv_version_name`被设置为`true`, 本组件将会展示pyenv版本名。 否则则显示通过`python --version`获得的版本号 -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - 当前目录包含 `.python-version` 文件 - 当前目录包含 `Pipfile` 文件 @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### 配置项 + +| 选项 | 默认值 | 描述 | +| ------------------- | ------------------------------------ | ------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | 组件格式化模板。 | +| `version_format` | `'v${raw}'` | 版本格式 可用的有 `raw`, `major`, `minor` 和 `patch` | +| `符号` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | 此组件的样式。 | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | 哪些文件应触发此组件 | +| `detect_folders` | `[]` | 那些文件夹应该触发此组件 | +| `disabled` | `false` | Disables the `quarto` module. | + +### 变量 + +| 字段 | 示例 | 描述 | +| --------- | --------- | ----------------------- | +| version | `1.4.549` | The version of `quarto` | +| 符号 | | `symbol`对应值 | +| style\* | | `style`对应值 | + +*: 此变量只能作为样式字符串的一部分使用 ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### 变量 -| 字段 | 示例 | 描述 | -| --------- | -------- | --------------------- | -| version | `v2.5.1` | The version of `ruby` | -| 符号 | | `symbol`对应值 | -| style\* | | `style`对应值 | +| 字段 | 示例 | 描述 | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| 符号 | | `symbol`对应值 | +| style\* | | `style`对应值 | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: 此变量只能作为样式字符串的一部分使用 @@ -4183,6 +4206,7 @@ By default, the module will be shown if any of the following conditions are met: - 当前用户与登录用户不相同 - 用户正通过 SSH 会话连接访问 - 字段 `show_always` 被设置为 true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 配置项 -| 选项 | 默认值 | 描述 | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | 非 root 用户使用的样式。 | -| `format` | `'[$user]($style) in '` | 组件格式化模板。 | -| `show_always` | `false` | 总是显示 `username` 组件。 | -| `disabled` | `false` | 禁用 `username` 组件。 | +| 选项 | 默认值 | 描述 | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | 非 root 用户使用的样式。 | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | 组件格式化模板。 | +| `show_always` | `false` | 总是显示 `username` 组件。 | +| `disabled` | `false` | 禁用 `username` 组件。 | ### 变量 @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 示例 +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/zh-CN/guide/README.md b/docs/zh-CN/guide/README.md index 663d4538..e3c9985b 100644 --- a/docs/zh-CN/guide/README.md +++ b/docs/zh-CN/guide/README.md @@ -40,11 +40,11 @@

    - 网站 + 网站 · 安装 · - 配置 + 配置

    @@ -171,7 +171,7 @@ - **易用:** 安装快速 —— 几分钟就可上手。

    -探索 Starship 文档 +探索 Starship 文档

    @@ -431,10 +431,6 @@ eval "$(starship init zsh)" 通过 [成为赞助商 ](https://github.com/sponsors/starship)来支持这个项目。 您的名字或 LOGO 将在此处显示,并链接到您的网站。 -**支持者级别** - -- [Appwrite](https://appwrite.io/) -


    Starship 图标 diff --git a/docs/zh-CN/installing/README.md b/docs/zh-CN/installing/README.md index 2d40cdbc..2d7c7a2a 100644 --- a/docs/zh-CN/installing/README.md +++ b/docs/zh-CN/installing/README.md @@ -5,7 +5,7 @@ 1. 下载 **Starship** 的可执行文件 1. 修改 shell 的初始化脚本,将 Starship 设置为命令提示符 -大部分用户按照[主页](../guide/#🚀-installation)上的步骤安装即可, 但有一些特殊系统上的安装步骤不同。 +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. 但有一些特殊系统上的安装步骤不同。 现有平台众多,README 中无法全部展示,所以这里是社区中对其他平台 的一些安装说明。 找不到你的平台? 如果你知道怎么安装,请添加到这里! diff --git a/docs/zh-TW/README.md b/docs/zh-TW/README.md index 938cf435..74ab5271 100644 --- a/docs/zh-TW/README.md +++ b/docs/zh-TW/README.md @@ -2,20 +2,21 @@ layout: home hero: image: /logo.svg - text: null + text: tagline: 適合任何 shell 的最小、極速、無限客製化的提示字元! actions: - - theme: brand + - + theme: brand text: 馬上開始 → link: ./guide/ features: - - + - title: 相容性優先 details: 能夠在最常見的作業系統之中最常見的 shell 上運作。 在各處使用它吧! - - + - title: 以 Rust 開發 details: 帶來同類中最快的速度以及 Rust 的安全性,讓你的提示字元盡可能快速與可靠。 - - + - title: 可客製化 details: 任何些微的細節都可以隨你喜愛地客製化,讓你的提示字元可以隨你所欲地最小化或是充滿各種特色。 footer: ISC Licensed | Copyright © 2019-present Starship Contributors @@ -24,12 +25,10 @@ metaTitle: "Starship:跨 Shell 提示字元" description: Starship 是適合任何 shell 的最小、極速、高度客製化的提示字元! 顯示你需要的訊息,同時保持順暢與最小化。 Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- -

    - -
    + ### 先決要求 @@ -58,6 +57,7 @@ description: Starship 是適合任何 shell 的最小、極速、高度客製化 ```sh brew install starship ``` + With [Winget](https://github.com/microsoft/winget-cli): ```powershell @@ -157,6 +157,7 @@ description: Starship 是適合任何 shell 的最小、極速、高度客製化 ::: Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): + ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu diff --git a/docs/zh-TW/config/README.md b/docs/zh-TW/config/README.md index 20511fc8..95576ec6 100644 --- a/docs/zh-TW/config/README.md +++ b/docs/zh-TW/config/README.md @@ -158,7 +158,7 @@ In the second part, which is enclosed in a `()`, is a [style string](#style-stri #### 風格字串 -Starship 內大多數的模組允許你設定他們的顯示風格。 這要透過一個條目 (通常叫做 `style`),這個條目使用一個字串來進行設定。 這裡給幾個風格字串的例子,以及這些字串的功用。 對於完整語法的詳細說明,請參照 [進階設定指南](../advanced-config/)。 +Starship 內大多數的模組允許你設定他們的顯示風格。 這要透過一個條目 (通常叫做 `style`),這個條目使用一個字串來進行設定。 這裡給幾個風格字串的例子,以及這些字串的功用。 For details on the full syntax, consult the [advanced config guide](../advanced-config/). - `'fg:green bg:blue'` sets green text on a blue background - `'bg:blue fg:bright-green'` sets bright green text on a blue background @@ -197,16 +197,16 @@ detect_extensions = ['ts', '!video.ts', '!audio.ts'] ### 選項 -| 選項 | 預設 | 說明 | -| ----------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `format` | [連結](#default-prompt-format) | Configure the format of the prompt. | +| 選項 | 預設 | 說明 | +| ----------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `format` | [連結](#default-prompt-format) | Configure the format of the prompt. | | `right_format` | `''` | See [Enable Right Prompt](../advanced-config/#enable-right-prompt) | -| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | -| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | -| `add_newline` | `true` | Inserts blank line between shell prompts. | -| `palette` | `''` | Sets which color palette from `palettes` to use. | +| `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `command_timeout` | `500` | Timeout for commands executed by starship (in milliseconds). | +| `add_newline` | `true` | Inserts blank line between shell prompts. | +| `palette` | `''` | Sets which color palette from `palettes` to use. | | `palettes` | `{}` | Collection of color palettes that assign [colors](../advanced-config/#style-strings) to user-defined names. Note that color palettes cannot reference their own color definitions. | -| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | +| `follow_symlinks` | `true` | Follows symlinks to check if they're directories; used in modules such as git. | ::: tip @@ -300,6 +300,7 @@ $php\ $pulumi\ $purescript\ $python\ +$quarto\ $raku\ $rlang\ $red\ @@ -1888,7 +1889,7 @@ The following variables can be used in `format`: | 變數 | 說明 | | -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$staged$untracked` | +| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | | `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | | `conflicted` | Displays `conflicted` when this branch has merge conflicts. | | `untracked` | Displays `untracked` when there are untracked files in the working directory. | @@ -3356,7 +3357,7 @@ The `python` module shows the currently installed version of [Python](https://ww If `pyenv_version_name` is set to `true`, it will display the pyenv version name. Otherwise, it will display the version number from `python --version`. -By default the module will be shown if any of the following conditions are met: +By default, the module will be shown if any of the following conditions are met: - 目前資料夾中有一個 `.python-version` 檔案 - 目前資料夾中有一個 `Pipfile` 檔案 @@ -3428,16 +3429,37 @@ python_binary = 'python3' detect_extensions = [] ``` -```toml -# ~/.config/starship.toml +## Quarto -[python] -# Display the version of python from inside a local venv. -# -# Note this will only work when the venv is inside the project and it will only -# work in the directory that contains the venv dir but maybe this is ok? -python_binary = ['./venv/bin/python', 'python', 'python3', 'python2'] -``` +The `quarto` module shows the current installed version of Quarto used in a project. + +By default, the module will be shown if any of the following conditions are met: + +- The current directory contains a `_quarto.yml` file +- The current directory contains any `*.qmd` file + +### 選項 + +| 選項 | 預設 | 說明 | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⨁ '` | A format string representing the symbol of Quarto | +| `style` | `'bold #75AADB'` | 這個模組的風格。 | +| `detect_extensions` | `['.qmd']` | Which extensions should trigger this module. | +| `detect_files` | `['_quarto.yml']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `disabled` | `false` | Disables the `quarto` module. | + +### 變數 + +| 變數 | 範例 | 說明 | +| --------- | --------- | ------------------------------------ | +| version | `1.4.549` | The version of `quarto` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string ## R @@ -3584,11 +3606,12 @@ Starship gets the current Ruby version by running `ruby -v`. ### 變數 -| 變數 | 範例 | 說明 | -| --------- | -------- | ------------------------------------ | -| version | `v2.5.1` | The version of `ruby` | -| symbol | | Mirrors the value of option `symbol` | -| style\* | | Mirrors the value of option `style` | +| 變數 | 範例 | 說明 | +| --------- | -------- | ------------------------------------------- | +| version | `v2.5.1` | The version of `ruby` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | +| gemset | `test` | Optional, gets the current RVM gemset name. | *: This variable can only be used as a part of a style string @@ -4183,6 +4206,7 @@ By default, the module will be shown if any of the following conditions are met: - 目前使用者並非登入時的使用者 - 使用者透過 SSH session 進行連線 - 變數 `show_always` 被設為 true +- The array `detect_env_vars` contains at least the name of one environment variable, that is set ::: tip @@ -4192,13 +4216,14 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 選項 -| 選項 | 預設 | 說明 | -| ------------- | ----------------------- | ------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | 非 root 使用者時使用的風格。 | -| `format` | `'[$user]($style) in '` | The format for the module. | -| `show_always` | `false` | 總是顯示 `username` 模組。 | -| `disabled` | `false` | 停用 `username` 模組。 | +| 選項 | 預設 | 說明 | +| ----------------- | ----------------------- | --------------------------------------------------------- | +| `style_root` | `'bold red'` | The style used when the user is root/admin. | +| `style_user` | `'bold yellow'` | 非 root 使用者時使用的風格。 | +| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | +| `format` | `'[$user]($style) in '` | The format for the module. | +| `show_always` | `false` | 總是顯示 `username` 模組。 | +| `disabled` | `false` | 停用 `username` 模組。 | ### 變數 @@ -4209,6 +4234,8 @@ SSH connection is detected by checking environment variables `SSH_CONNECTION`, ` ### 範例 +#### Always show the hostname + ```toml # ~/.config/starship.toml @@ -4220,6 +4247,17 @@ disabled = false show_always = true ``` +#### Hide the hostname in remote tmux sessions + +```toml +# ~/.config/starship.toml + +[hostname] +ssh_only = false +detect_env_vars = ['!TMUX', 'SSH_CONNECTION'] +disabled = false +``` + ## Vagrant The `vagrant` module shows the currently installed version of [Vagrant](https://www.vagrantup.com/). By default the module will be shown if any of the following conditions are met: diff --git a/docs/zh-TW/guide/README.md b/docs/zh-TW/guide/README.md index b0964761..f1d2ec26 100644 --- a/docs/zh-TW/guide/README.md +++ b/docs/zh-TW/guide/README.md @@ -40,11 +40,11 @@

    - 網站 + 網站 · 安裝 · - 設定 + 設定

    @@ -171,7 +171,7 @@ - **易用:**安裝快速 – 幾分鐘內即可開始使用。

    -探索 Starship 文件  ▶ +探索 Starship 文件  ▶

    @@ -431,10 +431,6 @@ eval "$(starship init zsh)" 你可以[成爲一個贊助者](https://github.com/sponsors/starship)來支持這個專案! 你的名字和頭像會在這裏顯示,並且會帶有一個前往你網站的鏈接。 -**贊助者等級** - -- [後端](https://appwrite.io/) -


    Starship rocket icon diff --git a/docs/zh-TW/installing/README.md b/docs/zh-TW/installing/README.md index bc8a6cad..2cb44861 100644 --- a/docs/zh-TW/installing/README.md +++ b/docs/zh-TW/installing/README.md @@ -5,7 +5,7 @@ 1. 下載 **starship** 執行檔到你的電腦裡 1. 修改 shell 的初始化腳本,讓其使用 starship 作為提示字元 -對大部分的使用者來說,在[主頁面](../guide/#🚀-installation)的安裝指引皆足以正常運作。 然而,對於一些較特別的平台,我們需要不同的安裝指引。 +For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. 然而,對於一些較特別的平台,我們需要不同的安裝指引。 有太多平台不適用於主要的 README.md 檔案了,所以這裡有一些來自社群的其他平台的安裝指引。 你的平台不在這裡嗎? 如果你找出怎麼安裝,請幫我們加上你的指引! From a5108a763822f280785008df38ceb8e90bb9256f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 16:14:45 +0100 Subject: [PATCH 207/651] chore(master): release 1.18.0 (#5684) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62053bcd..6bab1a0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [1.18.0](https://github.com/starship/starship/compare/v1.17.1...v1.18.0) (2024-03-21) + + +### Features + +* $gemset variable for Ruby module ([#5429](https://github.com/starship/starship/issues/5429)) ([938ea3c](https://github.com/starship/starship/commit/938ea3c40145af68d8e28b2ef0275531f1123202)) +* **bash:** Support right prompt and transience ([#4902](https://github.com/starship/starship/issues/4902)) ([5ead13d](https://github.com/starship/starship/commit/5ead13d6aa6303c85c562f1b940048cc539667cd)) +* **bash:** use PS0 for preexec hook ([#5735](https://github.com/starship/starship/issues/5735)) ([ae711c0](https://github.com/starship/starship/commit/ae711c0f332f4f24c843e59d6d5783e398e21b38)) +* **direnv:** use JSON status with direnv >= 2.33.0 ([#5692](https://github.com/starship/starship/issues/5692)) ([482c7b7](https://github.com/starship/starship/commit/482c7b719fc304fcad5f3572c4551f8ff4179522)) +* **docs:** move to vitepress ([#5785](https://github.com/starship/starship/issues/5785)) ([7485c90](https://github.com/starship/starship/commit/7485c90c9f7259c026a84dd0335f56860005315d)) +* **install:** Add version option to install script ([f66bfd9](https://github.com/starship/starship/commit/f66bfd9435f215867681a699428bd882d8c63ce7)) +* **install:** Add version option to install script ([#5728](https://github.com/starship/starship/issues/5728)) ([f66bfd9](https://github.com/starship/starship/commit/f66bfd9435f215867681a699428bd882d8c63ce7)) +* **os:** add new os symbols ([#5849](https://github.com/starship/starship/issues/5849)) ([df65b21](https://github.com/starship/starship/commit/df65b2155f92c03d07cabbcee6c92104a878c963)) +* **quarto:** Add Quarto module ([#5820](https://github.com/starship/starship/issues/5820)) ([0e49f04](https://github.com/starship/starship/commit/0e49f04a6b249090cf3703c5dac041a51e6bf530)) +* **release:** add winget arm64 push & repo sync ([#5033](https://github.com/starship/starship/issues/5033)) ([aef1a3f](https://github.com/starship/starship/commit/aef1a3f275e7ec9095c4718ecf6a268abfe7794a)) +* **username:** add detect_env_vars as option ([#5833](https://github.com/starship/starship/issues/5833)) ([b8a812b](https://github.com/starship/starship/commit/b8a812b93207da992ff8ae9f8b955bfa1252072b)) + + +### Bug Fixes + +* **bash:** Handle Unbound Variables Errors in Bash ([#4972](https://github.com/starship/starship/issues/4972)) ([7093d5c](https://github.com/starship/starship/commit/7093d5cd84967edba93c9ed412b07519664f6356)) +* **bash:** improve integration with bash-preexec ([#5734](https://github.com/starship/starship/issues/5734)) ([2aa711c](https://github.com/starship/starship/commit/2aa711ccc7096437e21149b18d1384534bfbcc57)) +* **character:** also handle vi edit mode in pwsh ([#5775](https://github.com/starship/starship/issues/5775)) ([0891ec2](https://github.com/starship/starship/commit/0891ec27a40421cd742a853885731aed63f412aa)) +* **direnv:** update to work with direnv v2.33 ([#5657](https://github.com/starship/starship/issues/5657)) ([cec111a](https://github.com/starship/starship/commit/cec111affdaf0a52f72c398f8307cf7e19c7dd8d)) +* **git_branch:** fall back to "HEAD" when there is no current branch ([#5768](https://github.com/starship/starship/issues/5768)) ([6a96e84](https://github.com/starship/starship/commit/6a96e84a15e3ea598356e4fcad23ac4b2690dd1e)) +* **nu:** continuation prompt not being displayed correctly ([#5851](https://github.com/starship/starship/issues/5851)) ([d308e91](https://github.com/starship/starship/commit/d308e918ee014f4ca9976683e79e819afd8160f7)) +* **status:** fix pipestatus width calculation ([#5036](https://github.com/starship/starship/issues/5036)) ([ab84043](https://github.com/starship/starship/commit/ab840439e326a80c53466c7b767d29be0112b9d2)), closes [#3162](https://github.com/starship/starship/issues/3162) +* **zsh:** improve starship binary path escaping ([#5574](https://github.com/starship/starship/issues/5574)) ([2bb57cf](https://github.com/starship/starship/commit/2bb57cf0cd6d53194d26f4be96dff5fa14942622)) + ## [1.17.1](https://github.com/starship/starship/compare/v1.17.0...v1.17.1) (2024-01-02) diff --git a/Cargo.lock b/Cargo.lock index 842b9eec..4a00f2bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2856,7 +2856,7 @@ dependencies = [ [[package]] name = "starship" -version = "1.17.1" +version = "1.18.0" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index e84dc2ce..1a9dacc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starship" -version = "1.17.1" +version = "1.18.0" authors = ["Starship Contributors"] build = "build.rs" categories = ["command-line-utilities"] From 82a8d694327b8d9065edb921a7e6a16786a5ee35 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Fri, 22 Mar 2024 00:15:33 +0900 Subject: [PATCH 208/651] docs(i18n): new Crowdin updates (#5858) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (German) --- docs/ar-SA/config/README.md | 19 ++++++++++++++++++- docs/bn-BD/config/README.md | 19 ++++++++++++++++++- docs/ckb-IR/config/README.md | 19 ++++++++++++++++++- docs/de-DE/config/README.md | 21 +++++++++++++++++++-- docs/es-ES/config/README.md | 19 ++++++++++++++++++- docs/fr-FR/config/README.md | 19 ++++++++++++++++++- docs/id-ID/config/README.md | 17 +++++++++++++++++ docs/it-IT/config/README.md | 19 ++++++++++++++++++- docs/ja-JP/config/README.md | 17 +++++++++++++++++ docs/ko-KR/config/README.md | 17 +++++++++++++++++ docs/nl-NL/config/README.md | 19 ++++++++++++++++++- docs/no-NO/config/README.md | 19 ++++++++++++++++++- docs/pl-PL/config/README.md | 19 ++++++++++++++++++- docs/pt-BR/config/README.md | 19 ++++++++++++++++++- docs/pt-PT/config/README.md | 19 ++++++++++++++++++- docs/ru-RU/config/README.md | 19 ++++++++++++++++++- docs/tr-TR/config/README.md | 19 ++++++++++++++++++- docs/uk-UA/config/README.md | 19 ++++++++++++++++++- docs/vi-VN/config/README.md | 19 ++++++++++++++++++- docs/zh-CN/config/README.md | 17 +++++++++++++++++ docs/zh-TW/config/README.md | 17 +++++++++++++++++ 21 files changed, 374 insertions(+), 17 deletions(-) diff --git a/docs/ar-SA/config/README.md b/docs/ar-SA/config/README.md index 50bab597..aa5b0a17 100644 --- a/docs/ar-SA/config/README.md +++ b/docs/ar-SA/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### مثال +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/bn-BD/config/README.md b/docs/bn-BD/config/README.md index 7b4f5106..54df074d 100644 --- a/docs/bn-BD/config/README.md +++ b/docs/bn-BD/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/ckb-IR/config/README.md b/docs/ckb-IR/config/README.md index 27cfd5a3..5303747b 100644 --- a/docs/ckb-IR/config/README.md +++ b/docs/ckb-IR/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### نموونە +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/de-DE/config/README.md b/docs/de-DE/config/README.md index 61840003..86941925 100644 --- a/docs/de-DE/config/README.md +++ b/docs/de-DE/config/README.md @@ -351,7 +351,7 @@ format = '$all$directory$character' ## AWS -The `aws` module shows the current AWS region and profile and an expiration timer when using temporary credentials. The output of the module uses the `AWS_REGION`, `AWS_DEFAULT_REGION`, and `AWS_PROFILE` env vars and the `~/.aws/config` and `~/.aws/credentials` files as required. +Das `aws` Modul zeigt die aktuelle AWS Region und Profil sowie den Ablauf-Timer an, wenn temporäre Zugangsdaten verwendet werden. Die Ausgabe des Moduls verwendet die `AWS_REGION`, `AWS_DEFAULT_REGION` und `AWS_PROFILE` Umgebungsvariablen sowie die `~/. ws/config` und `~/.aws/credentials` Dateien, falls nötig. The module will display a profile only if its credentials are present in `~/.aws/credentials` or if a `credential_process`, `sso_start_url`, or `sso_session` are defined in `~/.aws/config`. Alternatively, having any of the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, or `AWS_SESSION_TOKEN` env vars defined will also suffice. If the option `force_display` is set to `true`, all available information will be displayed even if no credentials per the conditions above are detected. @@ -619,7 +619,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Beispiel +### Beispiele + +#### Customize the format ```toml # ~/.config/starship.toml @@ -628,6 +630,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3034,7 +3045,9 @@ Dieses Modul ist standardmäßig deaktiviert. Setze in deiner Konfiguration `dis ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3051,6 +3064,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3069,11 +3083,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/es-ES/config/README.md b/docs/es-ES/config/README.md index 784e8daf..ec316956 100644 --- a/docs/es-ES/config/README.md +++ b/docs/es-ES/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: Esta variable solamente puede ser usada como parte de una cadena de caracteres de estilo -### Ejemplo +### Ejemplos + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C El módulo `c` muestra información sobre su compilador de C. Por defecto el módulo se mostrará si el directorio actual contiene un archivo `.c` o `.h`. @@ -3033,7 +3044,9 @@ Este módulo está deshabilitado por defecto. Para activarlo, establece `disable ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/fr-FR/config/README.md b/docs/fr-FR/config/README.md index 6bb5972e..97f08151 100644 --- a/docs/fr-FR/config/README.md +++ b/docs/fr-FR/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: Cette variable peut uniquement être utilisée dans une chaine de style -### Exemple +### Exemples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C Le module `c` affiche des informations à propos de votre compilateur C. Par défaut, ce module sera affiché si le dossier courant contient un fichier `.c` ou `.h`. @@ -3033,7 +3044,9 @@ Ce module est désactivé par défaut. Pour l'activer, configurez `disabled` sur ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/id-ID/config/README.md b/docs/id-ID/config/README.md index 64becc08..aa5cb32e 100644 --- a/docs/id-ID/config/README.md +++ b/docs/id-ID/config/README.md @@ -620,6 +620,8 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### Contoh +#### Customize the format + ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/it-IT/config/README.md b/docs/it-IT/config/README.md index 9a6a638c..c567a3d4 100644 --- a/docs/it-IT/config/README.md +++ b/docs/it-IT/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Esempio +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/ja-JP/config/README.md b/docs/ja-JP/config/README.md index 75268119..81c50543 100644 --- a/docs/ja-JP/config/README.md +++ b/docs/ja-JP/config/README.md @@ -620,6 +620,8 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### 設定例 +#### Customize the format + ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C `c` モジュールは、利用しているCコンパイラに関するいくつかの情報を表示します。 デフォルトでは、カレントディレクトリに`.c`または`.h`ファイルが含まれている場合、モジュールが表示されます。 @@ -3033,7 +3044,9 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/ko-KR/config/README.md b/docs/ko-KR/config/README.md index 8558d4f4..9f840a7d 100644 --- a/docs/ko-KR/config/README.md +++ b/docs/ko-KR/config/README.md @@ -620,6 +620,8 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### 예시 +#### Customize the format + ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/nl-NL/config/README.md b/docs/nl-NL/config/README.md index 7b4f5106..54df074d 100644 --- a/docs/nl-NL/config/README.md +++ b/docs/nl-NL/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/no-NO/config/README.md b/docs/no-NO/config/README.md index 7b4f5106..54df074d 100644 --- a/docs/no-NO/config/README.md +++ b/docs/no-NO/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/pl-PL/config/README.md b/docs/pl-PL/config/README.md index 53200eee..cd0f6532 100644 --- a/docs/pl-PL/config/README.md +++ b/docs/pl-PL/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/pt-BR/config/README.md b/docs/pt-BR/config/README.md index ad3b7aa7..d5ef651e 100644 --- a/docs/pt-BR/config/README.md +++ b/docs/pt-BR/config/README.md @@ -618,7 +618,9 @@ O módulo `bun` mostra a versão atualmente instalada do [bun](https://bun.sh) r *: Esta variável só pode ser usada como parte de uma string de estilo -### Exemplo +### Exemplos + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ O módulo `bun` mostra a versão atualmente instalada do [bun](https://bun.sh) r format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C O módulo `c` mostra algumas informações sobre o seu compilador de C. Por padrão o módulo será exibido se o diretório atual contém um arquivo `.c` ou `.h`. @@ -3033,7 +3044,9 @@ Este módulo é desabilitado por padrão. Para habilitar, defina `disabled` para ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/pt-PT/config/README.md b/docs/pt-PT/config/README.md index 7b4f5106..54df074d 100644 --- a/docs/pt-PT/config/README.md +++ b/docs/pt-PT/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/ru-RU/config/README.md b/docs/ru-RU/config/README.md index a27a0257..57c27b0d 100644 --- a/docs/ru-RU/config/README.md +++ b/docs/ru-RU/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: Эта переменная может использоваться только в качестве части строки style -### Пример +### Примеры + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/tr-TR/config/README.md b/docs/tr-TR/config/README.md index f4670b6b..5bead130 100644 --- a/docs/tr-TR/config/README.md +++ b/docs/tr-TR/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: This variable can only be used as a part of a style string -### Example +### Examples + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in y ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/uk-UA/config/README.md b/docs/uk-UA/config/README.md index 6aec18e6..9b7bdee0 100644 --- a/docs/uk-UA/config/README.md +++ b/docs/uk-UA/config/README.md @@ -618,7 +618,9 @@ symbol = '🦬 ' *: Ця змінна може бути використана лише як частина стилю рядка -### Приклад +### Приклади + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ symbol = '🦬 ' format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C Модуль `c` показує інформацію про ваш C компілятор. Стандартно модуль буде показаний, якщо поточна тека містить файли `.c` чи `.h`. @@ -3033,7 +3044,9 @@ symbol = '☁️ ' ```toml # Це таблиця стандартних символів. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/vi-VN/config/README.md b/docs/vi-VN/config/README.md index 714edc02..1553c81c 100644 --- a/docs/vi-VN/config/README.md +++ b/docs/vi-VN/config/README.md @@ -618,7 +618,9 @@ The `bun` module shows the currently installed version of the [bun](https://bun. *: Biến này có thể chỉ được sử dụng như một phần của style string -### Ví dụ +### Các ví dụ + +#### Customize the format ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ Mặc định, mô đun này được vô hiệu. Để kích hoạt nó, thiế ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/zh-CN/config/README.md b/docs/zh-CN/config/README.md index e2c0110b..6a74818a 100644 --- a/docs/zh-CN/config/README.md +++ b/docs/zh-CN/config/README.md @@ -620,6 +620,8 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### 示例 +#### Customize the format + ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` diff --git a/docs/zh-TW/config/README.md b/docs/zh-TW/config/README.md index 95576ec6..babed174 100644 --- a/docs/zh-TW/config/README.md +++ b/docs/zh-TW/config/README.md @@ -620,6 +620,8 @@ The `bun` module shows the currently installed version of the [bun](https://bun. ### 範例 +#### Customize the format + ```toml # ~/.config/starship.toml @@ -627,6 +629,15 @@ The `bun` module shows the currently installed version of the [bun](https://bun. format = 'via [🍔 $version](bold green) ' ``` +#### Replace Node.js + +You can override the `detect_files` property of [the nodejs module](#nodejs) in your config so as to only show the bun runtime: + +``` +[nodejs] +detect_files = ['package.json', '.node-version', '!bunfig.toml', '!bun.lockb'] +``` + ## C The `c` module shows some information about your C compiler. By default the module will be shown if the current directory contains a `.c` or `.h` file. @@ -3033,7 +3044,9 @@ The [os_info](https://lib.rs/crates/os_info) crate used by this module is known ```toml # This is the default symbols table. [os.symbols] +AIX = "➿ " Alpaquita = "🔔 " +AlmaLinux = "💠 " Alpine = "🏔️ " Amazon = "🙂 " Android = "🤖 " @@ -3050,6 +3063,7 @@ Garuda = "🦅 " Gentoo = "🗜️ " HardenedBSD = "🛡️ " Illumos = "🐦 " +Kali = "🐉 " Linux = "🐧 " Mabox = "📦 " Macos = "🍎 " @@ -3068,11 +3082,14 @@ Pop = "🍭 " Raspbian = "🍓 " Redhat = "🎩 " RedHatEnterprise = "🎩 " +RockyLinux = "💠 " Redox = "🧪 " Solus = "⛵ " SUSE = "🦎 " Ubuntu = "🎯 " +Ultramarine = "🔷 " Unknown = "❓ " +Void = " " Windows = "🪟 " ``` From 19ae0fbe8c815af48a0ec5a729ad1a19c16dff24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 06:36:07 +0000 Subject: [PATCH 209/651] build(deps): update rust crate gix to 0.61.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4a00f2bb..18f77e45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1058,9 +1058,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.61.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e0e59a44bf00de058ee98d6ecf3c9ed8f8842c1da642258ae4120d41ded8f7" +checksum = "d03e6e306a2c85bcd8e1de93dfd061531068ccd45eb05633d80c7e93f7e55fb9" dependencies = [ "gix-actor", "gix-commitgraph", diff --git a/Cargo.toml b/Cargo.toml index 1a9dacc0..f5bb9408 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.61.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix = { version = "0.61.1", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.1", optional = true } indexmap = { version = "2.2.5", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } From df107acc6d98aed2520497130440997a07fd8dd9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 11:37:11 +0000 Subject: [PATCH 210/651] build(deps): update embarkstudios/cargo-deny-action action to v1.6.2 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index cc057157..6a10ec2f 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.6.1 + uses: EmbarkStudios/cargo-deny-action@v1.6.2 with: command: check ${{ matrix.checks }} From a3a3735289177ca0f1ab4bb44cf288ab72a97b3a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 01:54:33 +0000 Subject: [PATCH 211/651] build(deps): update rust crate indexmap to 2.2.6 --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18f77e45..eef5238b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1665,9 +1665,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2606,7 +2606,7 @@ checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "indexmap 2.2.5", + "indexmap 2.2.6", "schemars_derive", "serde", "serde_json", @@ -2869,7 +2869,7 @@ dependencies = [ "gix-features", "guess_host_triple", "home", - "indexmap 2.2.5", + "indexmap 2.2.6", "log", "mockall", "nix 0.28.0", @@ -3158,7 +3158,7 @@ version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", @@ -3180,7 +3180,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "toml_datetime", "winnow 0.5.40", ] @@ -3191,7 +3191,7 @@ version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", diff --git a/Cargo.toml b/Cargo.toml index f5bb9408..a8305f30 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,7 @@ gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 gix = { version = "0.61.1", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.1", optional = true } -indexmap = { version = "2.2.5", features = ["serde"] } +indexmap = { version = "2.2.6", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 From 3ed5f53808eb922b8a505d6baed08b37c68041d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 01:54:40 +0000 Subject: [PATCH 212/651] build(deps): update rust crate regex to 1.10.4 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eef5238b..2a26e4a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2518,9 +2518,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index a8305f30..ea38de73 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ pest_derive = "2.7.8" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.9.0" -regex = { version = "1.10.3", default-features = false, features = ["perf", "std", "unicode-perl"] } +regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } From d8ab405b60e0e47a92411df00b1c3eaacfe60c9c Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sat, 23 Mar 2024 00:18:02 -0700 Subject: [PATCH 213/651] docs(faq): Tweak some grammar in the FAQ (#5867) Tweak some grammar in the FAQ --- docs/faq/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq/README.md b/docs/faq/README.md index 3c2a1b88..8414c829 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -86,7 +86,7 @@ env STARSHIP_LOG=trace starship module rust ``` If starship is being slow you can try using the `timings` command to see if -there is a particular module or command that to blame. +there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings From c9542a3d8717d3389493948a79f56772e8eda40d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 07:19:10 +0000 Subject: [PATCH 214/651] build(deps): update rust crate which to 6.0.1 --- Cargo.lock | 13 +++++++++---- Cargo.toml | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a26e4a8..19fa5ae5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3463,15 +3463,14 @@ checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "which" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c" +checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" dependencies = [ "either", "home", - "once_cell", "rustix 0.38.31", - "windows-sys 0.52.0", + "winsafe", ] [[package]] @@ -3712,6 +3711,12 @@ dependencies = [ "toml 0.5.11", ] +[[package]] +name = "winsafe" +version = "0.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" + [[package]] name = "xdg-home" version = "1.0.0" diff --git a/Cargo.toml b/Cargo.toml index ea38de73..a8d562cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -86,7 +86,7 @@ unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" versions = "6.2.0" -which = "6.0.0" +which = "6.0.1" yaml-rust = "0.4.5" process_control = { version = "4.1.0", features = ["crossbeam-channel"] } From 899e3b7d6d7561f0f8732cb13143fdb21da8ffda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 07:27:24 +0000 Subject: [PATCH 215/651] build(deps): update dependency vitepress to ^1.0.1 --- docs/package-lock.json | 582 ++++++++++++++++++++--------------------- docs/package.json | 2 +- 2 files changed, 292 insertions(+), 292 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 13fff1e4..3bce7c6e 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.0.0-rc.45" + "vitepress": "^1.0.1" } }, "node_modules/@adobe/css-tools": { @@ -191,9 +191,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", + "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -203,30 +203,30 @@ } }, "node_modules/@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", + "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", "dev": true }, "node_modules/@docsearch/js": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz", - "integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.0.tgz", + "integrity": "sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==", "dev": true, "dependencies": { - "@docsearch/react": "3.5.2", + "@docsearch/react": "3.6.0", "preact": "^10.0.0" } }, "node_modules/@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", + "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", "dev": true, "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", + "@docsearch/css": "3.6.0", "algoliasearch": "^4.19.1" }, "peerDependencies": { @@ -251,9 +251,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", "cpu": [ "ppc64" ], @@ -267,9 +267,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", "cpu": [ "arm" ], @@ -283,9 +283,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", "cpu": [ "arm64" ], @@ -299,9 +299,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", "cpu": [ "x64" ], @@ -315,9 +315,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", "cpu": [ "arm64" ], @@ -331,9 +331,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", "cpu": [ "x64" ], @@ -347,9 +347,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", "cpu": [ "arm64" ], @@ -363,9 +363,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", "cpu": [ "x64" ], @@ -379,9 +379,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", "cpu": [ "arm" ], @@ -395,9 +395,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", "cpu": [ "arm64" ], @@ -411,9 +411,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", "cpu": [ "ia32" ], @@ -427,9 +427,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", "cpu": [ "loong64" ], @@ -443,9 +443,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", "cpu": [ "mips64el" ], @@ -459,9 +459,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", "cpu": [ "ppc64" ], @@ -475,9 +475,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", "cpu": [ "riscv64" ], @@ -491,9 +491,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", "cpu": [ "s390x" ], @@ -507,9 +507,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", "cpu": [ "x64" ], @@ -523,9 +523,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", "cpu": [ "x64" ], @@ -539,9 +539,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", "cpu": [ "x64" ], @@ -555,9 +555,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", "cpu": [ "x64" ], @@ -571,9 +571,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", "cpu": [ "arm64" ], @@ -587,9 +587,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", "cpu": [ "ia32" ], @@ -603,9 +603,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", "cpu": [ "x64" ], @@ -625,9 +625,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", - "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", + "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", "cpu": [ "arm" ], @@ -638,9 +638,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", - "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", + "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", "cpu": [ "arm64" ], @@ -651,9 +651,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", - "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", + "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", "cpu": [ "arm64" ], @@ -664,9 +664,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", - "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", + "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", "cpu": [ "x64" ], @@ -677,9 +677,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", - "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", + "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", "cpu": [ "arm" ], @@ -690,9 +690,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", - "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", + "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", "cpu": [ "arm64" ], @@ -703,9 +703,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", - "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", + "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", "cpu": [ "arm64" ], @@ -716,9 +716,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", - "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", + "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", "cpu": [ "riscv64" ], @@ -729,9 +729,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", - "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", + "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", "cpu": [ "x64" ], @@ -742,9 +742,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", - "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", + "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", "cpu": [ "x64" ], @@ -755,9 +755,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", - "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", + "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", "cpu": [ "arm64" ], @@ -768,9 +768,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", - "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", + "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", "cpu": [ "ia32" ], @@ -781,9 +781,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", - "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", + "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", "cpu": [ "x64" ], @@ -794,18 +794,18 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.1.5.tgz", - "integrity": "sha512-cKc5vGQ4p/4sjx48BHIO7CvLaN32vqpz5Wh7v2n+U1EezGdfX4Wms7khBctKz3iCg9yYq4sfGUc2t+JWj6EUsw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.2.0.tgz", + "integrity": "sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==", "dev": true }, "node_modules/@shikijs/transformers": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.1.5.tgz", - "integrity": "sha512-ot6KWPmLuSN9nA9FAhttOXZIjKIy7cnwpNtI9aWmYN72RUaDz8eojRfMGUXsXXUxW/buvcvdZQAQldk7/pFpdw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.2.0.tgz", + "integrity": "sha512-xKn7DtA65DQV4FOfYsrvqM80xOy2xuXnxWWKsZmHv1VII/IOuDUDsWDu3KnpeLH6wqNJWp1GRoNUsHR1aw/VhQ==", "dev": true, "dependencies": { - "shiki": "1.1.5" + "shiki": "1.2.0" } }, "node_modules/@types/estree": { @@ -856,71 +856,71 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.19.tgz", - "integrity": "sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", + "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", "dev": true, "dependencies": { "@babel/parser": "^7.23.9", - "@vue/shared": "3.4.19", + "@vue/shared": "3.4.21", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz", - "integrity": "sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", + "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.19", - "@vue/shared": "3.4.19" + "@vue/compiler-core": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz", - "integrity": "sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", + "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", "dev": true, "dependencies": { "@babel/parser": "^7.23.9", - "@vue/compiler-core": "3.4.19", - "@vue/compiler-dom": "3.4.19", - "@vue/compiler-ssr": "3.4.19", - "@vue/shared": "3.4.19", + "@vue/compiler-core": "3.4.21", + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21", "estree-walker": "^2.0.2", - "magic-string": "^0.30.6", - "postcss": "^8.4.33", + "magic-string": "^0.30.7", + "postcss": "^8.4.35", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz", - "integrity": "sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", + "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.19", - "@vue/shared": "3.4.19" + "@vue/compiler-dom": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/devtools-api": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.0.15.tgz", - "integrity": "sha512-kgEYWosDyWpS1vFSuJNNWUnHkP+VkL3Y+9mw+rf7ex41SwbYL/WdC3KXqAtjiSrEs7r/FrHmUTh0BkINJPFkbA==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.0.20.tgz", + "integrity": "sha512-DGEIdotTQFll4187YGc/0awcag7UGJu9M6rE1Pxcs8AX/sGm0Ikk7UqQELmqYsyPzTT9s6OZzSPuBc4OatOXKA==", "dev": true, "dependencies": { - "@vue/devtools-kit": "^7.0.15" + "@vue/devtools-kit": "^7.0.20" } }, "node_modules/@vue/devtools-kit": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.15.tgz", - "integrity": "sha512-dT7OeCe1LUCIhHIb/yRR6Hn+XHh73r1o78onqCrxEKHdoZwBItiIeVnmJZPEUDFstIxfs+tJL231mySk3laTow==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.20.tgz", + "integrity": "sha512-FgFuPuqrhQ51rR/sVi52FnGgrxJ3X1bvNra/SkBzPhxJVhfyL5w2YUJZI1FgCvtLAyPSomJNdvlG415ZbJsr6w==", "dev": true, "dependencies": { - "@vue/devtools-shared": "^7.0.15", + "@vue/devtools-shared": "^7.0.20", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", @@ -931,73 +931,73 @@ } }, "node_modules/@vue/devtools-shared": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.15.tgz", - "integrity": "sha512-fpfvMVvS7aDgO7x2JPFiTQ1MHcCc63/bE7yTgs278gMBybuO9b3hdiZ/k0Pw1rN+RefaU9yQiFA+5CCFc1D+6w==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.20.tgz", + "integrity": "sha512-E6CiCaYr6ZWOCYJgWodXcPCXxB12vgbUA1X1sG0F1tK5Bo5I35GJuTR8LBJLFHV0VpwLWvyrIi9drT1ZbuJxlg==", "dev": true, "dependencies": { "rfdc": "^1.3.1" } }, "node_modules/@vue/reactivity": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.19.tgz", - "integrity": "sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", + "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", "dev": true, "dependencies": { - "@vue/shared": "3.4.19" + "@vue/shared": "3.4.21" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.19.tgz", - "integrity": "sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", + "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", "dev": true, "dependencies": { - "@vue/reactivity": "3.4.19", - "@vue/shared": "3.4.19" + "@vue/reactivity": "3.4.21", + "@vue/shared": "3.4.21" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.19.tgz", - "integrity": "sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", + "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", "dev": true, "dependencies": { - "@vue/runtime-core": "3.4.19", - "@vue/shared": "3.4.19", + "@vue/runtime-core": "3.4.21", + "@vue/shared": "3.4.21", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.19.tgz", - "integrity": "sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", + "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.4.19", - "@vue/shared": "3.4.19" + "@vue/compiler-ssr": "3.4.21", + "@vue/shared": "3.4.21" }, "peerDependencies": { - "vue": "3.4.19" + "vue": "3.4.21" } }, "node_modules/@vue/shared": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.19.tgz", - "integrity": "sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", + "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==", "dev": true }, "node_modules/@vueuse/core": { - "version": "10.7.2", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz", - "integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.9.0.tgz", + "integrity": "sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==", "dev": true, "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.7.2", - "@vueuse/shared": "10.7.2", - "vue-demi": ">=0.14.6" + "@vueuse/metadata": "10.9.0", + "@vueuse/shared": "10.9.0", + "vue-demi": ">=0.14.7" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1030,14 +1030,14 @@ } }, "node_modules/@vueuse/integrations": { - "version": "10.7.2", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.2.tgz", - "integrity": "sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.9.0.tgz", + "integrity": "sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==", "dev": true, "dependencies": { - "@vueuse/core": "10.7.2", - "@vueuse/shared": "10.7.2", - "vue-demi": ">=0.14.6" + "@vueuse/core": "10.9.0", + "@vueuse/shared": "10.9.0", + "vue-demi": ">=0.14.7" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1122,21 +1122,21 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.7.2", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz", - "integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.9.0.tgz", + "integrity": "sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==", "dev": true, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.7.2", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz", - "integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==", + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.9.0.tgz", + "integrity": "sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==", "dev": true, "dependencies": { - "vue-demi": ">=0.14.6" + "vue-demi": ">=0.14.7" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1256,9 +1256,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", "dev": true, "hasInstallScript": true, "bin": { @@ -1268,29 +1268,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" } }, "node_modules/estree-walker": { @@ -1379,9 +1379,9 @@ "peer": true }, "node_modules/magic-string": { - "version": "0.30.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", - "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -1483,9 +1483,9 @@ "dev": true }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -1504,7 +1504,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -1527,9 +1527,9 @@ "dev": true }, "node_modules/rollup": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", - "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", + "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1542,19 +1542,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.12.0", - "@rollup/rollup-android-arm64": "4.12.0", - "@rollup/rollup-darwin-arm64": "4.12.0", - "@rollup/rollup-darwin-x64": "4.12.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", - "@rollup/rollup-linux-arm64-gnu": "4.12.0", - "@rollup/rollup-linux-arm64-musl": "4.12.0", - "@rollup/rollup-linux-riscv64-gnu": "4.12.0", - "@rollup/rollup-linux-x64-gnu": "4.12.0", - "@rollup/rollup-linux-x64-musl": "4.12.0", - "@rollup/rollup-win32-arm64-msvc": "4.12.0", - "@rollup/rollup-win32-ia32-msvc": "4.12.0", - "@rollup/rollup-win32-x64-msvc": "4.12.0", + "@rollup/rollup-android-arm-eabi": "4.13.0", + "@rollup/rollup-android-arm64": "4.13.0", + "@rollup/rollup-darwin-arm64": "4.13.0", + "@rollup/rollup-darwin-x64": "4.13.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", + "@rollup/rollup-linux-arm64-gnu": "4.13.0", + "@rollup/rollup-linux-arm64-musl": "4.13.0", + "@rollup/rollup-linux-riscv64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-musl": "4.13.0", + "@rollup/rollup-win32-arm64-msvc": "4.13.0", + "@rollup/rollup-win32-ia32-msvc": "4.13.0", + "@rollup/rollup-win32-x64-msvc": "4.13.0", "fsevents": "~2.3.2" } }, @@ -1574,12 +1574,12 @@ "peer": true }, "node_modules/shiki": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.1.5.tgz", - "integrity": "sha512-754GuKIwkUdT810Xm8btuyNQPL+q3PqOkwGW/VlmAWyMYp+HbvvDt69sWXO1sm5aeczBJQjmQTTMR4GkKQNQPw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.2.0.tgz", + "integrity": "sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==", "dev": true, "dependencies": { - "@shikijs/core": "1.1.5" + "@shikijs/core": "1.2.0" } }, "node_modules/source-map": { @@ -1594,9 +1594,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1642,14 +1642,14 @@ "dev": true }, "node_modules/vite": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz", - "integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.3.tgz", + "integrity": "sha512-+i1oagbvkVIhEy9TnEV+fgXsng13nZM90JQbrcPrf6DvW2mXARlz+DK7DLiDP+qeKoD1FCVx/1SpFL1CLq9Mhw==", "dev": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" + "esbuild": "^0.20.1", + "postcss": "^8.4.36", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" @@ -1697,33 +1697,33 @@ } }, "node_modules/vitepress": { - "version": "1.0.0-rc.45", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.45.tgz", - "integrity": "sha512-/OiYsu5UKpQKA2c0BAZkfyywjfauDjvXyv6Mo4Ra57m5n4Bxg1HgUGoth1CLH2vwUbR/BHvDA9zOM0RDvgeSVQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.1.tgz", + "integrity": "sha512-eNr5pOBppYUUjEhv8S0S2t9Tv95LQ6mMeHj6ivaGwfHxpov70Vduuwl/QQMDRznKDSaP0WKV7a82Pb4JVOaqEw==", "dev": true, "dependencies": { - "@docsearch/css": "^3.5.2", - "@docsearch/js": "^3.5.2", - "@shikijs/core": "^1.1.5", - "@shikijs/transformers": "^1.1.5", + "@docsearch/css": "^3.6.0", + "@docsearch/js": "^3.6.0", + "@shikijs/core": "^1.2.0", + "@shikijs/transformers": "^1.2.0", "@types/markdown-it": "^13.0.7", "@vitejs/plugin-vue": "^5.0.4", - "@vue/devtools-api": "^7.0.14", - "@vueuse/core": "^10.7.2", - "@vueuse/integrations": "^10.7.2", + "@vue/devtools-api": "^7.0.16", + "@vueuse/core": "^10.9.0", + "@vueuse/integrations": "^10.9.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", - "shiki": "^1.1.5", - "vite": "^5.1.3", - "vue": "^3.4.19" + "shiki": "^1.2.0", + "vite": "^5.2.2", + "vue": "^3.4.21" }, "bin": { "vitepress": "bin/vitepress.js" }, "peerDependencies": { - "markdown-it-mathjax3": "^4.3.2", - "postcss": "^8.4.35" + "markdown-it-mathjax3": "^4", + "postcss": "^8" }, "peerDependenciesMeta": { "markdown-it-mathjax3": { @@ -1735,16 +1735,16 @@ } }, "node_modules/vue": { - "version": "3.4.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.19.tgz", - "integrity": "sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==", + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", + "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.19", - "@vue/compiler-sfc": "3.4.19", - "@vue/runtime-dom": "3.4.19", - "@vue/server-renderer": "3.4.19", - "@vue/shared": "3.4.19" + "@vue/compiler-dom": "3.4.21", + "@vue/compiler-sfc": "3.4.21", + "@vue/runtime-dom": "3.4.21", + "@vue/server-renderer": "3.4.21", + "@vue/shared": "3.4.21" }, "peerDependencies": { "typescript": "*" diff --git a/docs/package.json b/docs/package.json index 09476330..92380d76 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.0.0-rc.45" + "vitepress": "^1.0.1" } } From d421f63785f901caf222941cbfae7cb8c0feec74 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 24 Mar 2024 08:03:10 +0100 Subject: [PATCH 216/651] fix(deps): update rust crate os_info to 3.8.2 (#5870) Previous versions were yanked because they did not build on FreeBSD. --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 19fa5ae5..4355a7d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2136,9 +2136,9 @@ dependencies = [ [[package]] name = "os_info" -version = "3.8.1" +version = "3.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbb46d5d01695d7a1fb8be5f0d1968bd2b2b8ba1d1b3e7062ce2a0593e57af1" +checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" dependencies = [ "log", "serde", diff --git a/Cargo.toml b/Cargo.toml index a8d562cb..e91dda0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,7 +60,7 @@ nu-ansi-term = "0.50.0" once_cell = "1.19.0" open = "5.1.2" # update os module config and tests when upgrading os_info -os_info = "3.8.1" +os_info = "3.8.2" path-slash = "0.2.1" pest = "2.7.8" pest_derive = "2.7.8" From d5861f9f974147d307c319865890cbb3e50dbe5a Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 24 Mar 2024 08:03:55 +0100 Subject: [PATCH 217/651] fix: replace all remaining paths referring to vuepress (#5859) --- .dprint.json | 2 +- .github/workflows/format-workflow.yml | 2 +- Cargo.toml | 2 +- install/macos_packages/build_and_notarize.sh | 4 ++-- install/macos_packages/build_component_package.sh | 2 +- src/modules/os.rs | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.dprint.json b/.dprint.json index 1ff7dd68..fe3d49a0 100644 --- a/.dprint.json +++ b/.dprint.json @@ -14,7 +14,7 @@ ], "excludes": [ "CHANGELOG.md", - "docs/.vuepress/dist/**", + "docs/.vitepress/dist/**", "**/node_modules", "**/*-lock.json", ".github/*", diff --git a/.github/workflows/format-workflow.yml b/.github/workflows/format-workflow.yml index 34636ad3..a6b1f640 100644 --- a/.github/workflows/format-workflow.yml +++ b/.github/workflows/format-workflow.yml @@ -26,7 +26,7 @@ jobs: - name: Install | Taplo run: cargo install --debug --locked --version 0.9.0 taplo-cli - name: Presets | Validate with schema - run: taplo lint --schema "file://${GITHUB_WORKSPACE}/.github/config-schema.json" docs/.vuepress/public/presets/toml/*.toml + run: taplo lint --schema "file://${GITHUB_WORKSPACE}/.github/config-schema.json" docs/public/presets/toml/*.toml # If this is not a Crowdin PR, block changes to translated documentation block-crowdin: diff --git a/Cargo.toml b/Cargo.toml index e91dda0f..a9fa8ed7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ include = [ "build.rs", "LICENSE", "/README.md", - "docs/.vuepress/public/presets/toml/", + "docs/public/presets/toml/", ".github/config-schema.json", ] keywords = ["prompt", "shell", "bash", "fish", "zsh"] diff --git a/install/macos_packages/build_and_notarize.sh b/install/macos_packages/build_and_notarize.sh index d3f12193..768b0935 100644 --- a/install/macos_packages/build_and_notarize.sh +++ b/install/macos_packages/build_and_notarize.sh @@ -65,7 +65,7 @@ starship_docs_dir="$2" arch="$3" pkgname="${4:-}" -if [[ ! -d "$starship_docs_dir/.vuepress/dist" ]]; then +if [[ ! -d "$starship_docs_dir/.vitepress/dist" ]]; then error "Documentation does not appear to have been built!" fi @@ -87,7 +87,7 @@ unzip starship.zip # Create the component package echo ">>>> Building Component Package" -bash "$script_dir/build_component_package.sh" "starship" "$starship_docs_dir/.vuepress/dist" +bash "$script_dir/build_component_package.sh" "starship" "$starship_docs_dir/.vitepress/dist" # Create the distribution package echo ">>>> Building Distribution Package" diff --git a/install/macos_packages/build_component_package.sh b/install/macos_packages/build_component_package.sh index 807e5056..2ac4daa3 100644 --- a/install/macos_packages/build_component_package.sh +++ b/install/macos_packages/build_component_package.sh @@ -13,7 +13,7 @@ usage() { echo "Assumes that the following items already exist:" echo " - A starship binary which has already been notarized" echo " - Documentation created by \`npm run build\`, usually in a dist" - echo " directory at /docs/.vuepress/dist" + echo " directory at /docs/.vitepress/dist" echo "Usage: $0 " } diff --git a/src/modules/os.rs b/src/modules/os.rs index 93b83dc7..c8447fb9 100644 --- a/src/modules/os.rs +++ b/src/modules/os.rs @@ -327,8 +327,8 @@ mod tests { // - crate::modules::os::tests // - docs/config/README.md/#Configuration/#OS/#Options // - docs/config/README.md/#Configuration/#OS/#Example - // - docs/.vuepress/public/presets/toml/plain-text-symbols.toml - // - dosc/.vuepress/public/presets/toml/nerd-font-symbols.toml + // - docs/public/presets/toml/plain-text-symbols.toml + // - dosc/public/presets/toml/nerd-font-symbols.toml // - .github/config-schema.json let _ = |t: Type| match t { Type::AIX => "➿ ", From 7dcd26a2c82957b2154f669532394bf3ac885f4a Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 24 Mar 2024 08:04:11 +0100 Subject: [PATCH 218/651] docs: document ble.sh version requirement (#5861) --- docs/advanced-config/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index b1931b9c..941dde7b 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -108,7 +108,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: @@ -298,7 +298,7 @@ the input line in a multi-line prompt, see the [`fill` module](../config/#fill). `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example From 422934dc71f9e6c582407ee5aa0364eae3b0e371 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 Mar 2024 10:51:46 +0100 Subject: [PATCH 219/651] chore(master): release 1.18.1 (#5874) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bab1a0d..a0e98989 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [1.18.1](https://github.com/starship/starship/compare/v1.18.0...v1.18.1) (2024-03-24) + + +### Bug Fixes + +* **deps:** update rust crate os_info to 3.8.2 ([#5870](https://github.com/starship/starship/issues/5870)) ([d421f63](https://github.com/starship/starship/commit/d421f63785f901caf222941cbfae7cb8c0feec74)) +* replace all remaining paths referring to vuepress ([#5859](https://github.com/starship/starship/issues/5859)) ([d5861f9](https://github.com/starship/starship/commit/d5861f9f974147d307c319865890cbb3e50dbe5a)) + ## [1.18.0](https://github.com/starship/starship/compare/v1.17.1...v1.18.0) (2024-03-21) diff --git a/Cargo.lock b/Cargo.lock index 4355a7d6..013371cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2856,7 +2856,7 @@ dependencies = [ [[package]] name = "starship" -version = "1.18.0" +version = "1.18.1" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index a9fa8ed7..9297cbca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starship" -version = "1.18.0" +version = "1.18.1" authors = ["Starship Contributors"] build = "build.rs" categories = ["command-line-utilities"] From 413364ed2ad04cf625c26a0cce61fcfd84261639 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Mar 2024 07:04:19 +0000 Subject: [PATCH 220/651] build(deps): update rust crate rayon to 1.10.0 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 013371cb..dcd7ee08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2478,9 +2478,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", diff --git a/Cargo.toml b/Cargo.toml index 9297cbca..c6b908d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,7 +66,7 @@ pest = "2.7.8" pest_derive = "2.7.8" quick-xml = "0.31.0" rand = "0.8.5" -rayon = "1.9.0" +rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.22" From 0696b32142917ad8e389f650580e7a15571fb21c Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Sun, 24 Mar 2024 18:52:26 +0900 Subject: [PATCH 221/651] docs(i18n): new Crowdin updates (#5869) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) --- docs/ar-SA/advanced-config/README.md | 4 ++-- docs/ar-SA/faq/README.md | 2 +- docs/bn-BD/advanced-config/README.md | 4 ++-- docs/bn-BD/faq/README.md | 2 +- docs/ckb-IR/advanced-config/README.md | 4 ++-- docs/ckb-IR/faq/README.md | 2 +- docs/de-DE/advanced-config/README.md | 4 ++-- docs/de-DE/faq/README.md | 2 +- docs/es-ES/advanced-config/README.md | 4 ++-- docs/es-ES/faq/README.md | 2 +- docs/fr-FR/advanced-config/README.md | 4 ++-- docs/fr-FR/faq/README.md | 2 +- docs/id-ID/advanced-config/README.md | 4 ++-- docs/id-ID/faq/README.md | 2 +- docs/it-IT/advanced-config/README.md | 4 ++-- docs/it-IT/faq/README.md | 2 +- docs/ja-JP/advanced-config/README.md | 4 ++-- docs/ja-JP/faq/README.md | 2 +- docs/ko-KR/advanced-config/README.md | 4 ++-- docs/ko-KR/faq/README.md | 2 +- docs/nl-NL/advanced-config/README.md | 4 ++-- docs/nl-NL/faq/README.md | 2 +- docs/no-NO/advanced-config/README.md | 4 ++-- docs/no-NO/faq/README.md | 2 +- docs/pl-PL/advanced-config/README.md | 4 ++-- docs/pl-PL/faq/README.md | 2 +- docs/pt-BR/advanced-config/README.md | 4 ++-- docs/pt-BR/faq/README.md | 2 +- docs/pt-PT/advanced-config/README.md | 4 ++-- docs/pt-PT/faq/README.md | 2 +- docs/ru-RU/advanced-config/README.md | 4 ++-- docs/ru-RU/faq/README.md | 2 +- docs/tr-TR/advanced-config/README.md | 4 ++-- docs/tr-TR/faq/README.md | 2 +- docs/uk-UA/advanced-config/README.md | 4 ++-- docs/uk-UA/faq/README.md | 2 +- docs/vi-VN/advanced-config/README.md | 4 ++-- docs/vi-VN/faq/README.md | 2 +- docs/zh-CN/advanced-config/README.md | 4 ++-- docs/zh-CN/faq/README.md | 2 +- docs/zh-TW/advanced-config/README.md | 4 ++-- docs/zh-TW/faq/README.md | 2 +- 42 files changed, 63 insertions(+), 63 deletions(-) diff --git a/docs/ar-SA/advanced-config/README.md b/docs/ar-SA/advanced-config/README.md index 6949bb2a..ed0870d0 100644 --- a/docs/ar-SA/advanced-config/README.md +++ b/docs/ar-SA/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### مثال diff --git a/docs/ar-SA/faq/README.md b/docs/ar-SA/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/ar-SA/faq/README.md +++ b/docs/ar-SA/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/bn-BD/advanced-config/README.md b/docs/bn-BD/advanced-config/README.md index 385ba21c..d110b7a4 100644 --- a/docs/bn-BD/advanced-config/README.md +++ b/docs/bn-BD/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example diff --git a/docs/bn-BD/faq/README.md b/docs/bn-BD/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/bn-BD/faq/README.md +++ b/docs/bn-BD/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/ckb-IR/advanced-config/README.md b/docs/ckb-IR/advanced-config/README.md index d70a7774..b2c35e2a 100644 --- a/docs/ckb-IR/advanced-config/README.md +++ b/docs/ckb-IR/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### نموونە diff --git a/docs/ckb-IR/faq/README.md b/docs/ckb-IR/faq/README.md index 14362f66..c8f23ff8 100644 --- a/docs/ckb-IR/faq/README.md +++ b/docs/ckb-IR/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/de-DE/advanced-config/README.md b/docs/de-DE/advanced-config/README.md index f64cbbcd..40edb107 100644 --- a/docs/de-DE/advanced-config/README.md +++ b/docs/de-DE/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Beispiel diff --git a/docs/de-DE/faq/README.md b/docs/de-DE/faq/README.md index bfe3eb20..a4c79378 100644 --- a/docs/de-DE/faq/README.md +++ b/docs/de-DE/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/es-ES/advanced-config/README.md b/docs/es-ES/advanced-config/README.md index 2d37d4b7..4feaeb08 100644 --- a/docs/es-ES/advanced-config/README.md +++ b/docs/es-ES/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. Esto es útil en los casos en que la información del prompt no es siempre necesaria. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. Esto es útil en los casos en que la información del prompt no es siempre necesaria. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Nota: El prompt derecho es una sola línea siguiendo la ubicación de entrada. P `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Ejemplo diff --git a/docs/es-ES/faq/README.md b/docs/es-ES/faq/README.md index 8da83d7e..eeef3bb4 100644 --- a/docs/es-ES/faq/README.md +++ b/docs/es-ES/faq/README.md @@ -72,7 +72,7 @@ Puede habilitar los registros de depuración usando la variable de entorno `STAR env STARSHIP_LOG=trace starship module rust ``` -Si starship está siendo lento, puedes intentar usar el comando `timings` para ver si hay un módulo en particular o un comando a culpar. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/fr-FR/advanced-config/README.md b/docs/fr-FR/advanced-config/README.md index d971587d..63c2caeb 100644 --- a/docs/fr-FR/advanced-config/README.md +++ b/docs/fr-FR/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: l’invite à droite est une seule ligne, sur la même ligne que l’entr `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Exemple diff --git a/docs/fr-FR/faq/README.md b/docs/fr-FR/faq/README.md index 5b4bf74f..d474eb6f 100644 --- a/docs/fr-FR/faq/README.md +++ b/docs/fr-FR/faq/README.md @@ -72,7 +72,7 @@ Vous pouvez activer les journaux de débogage en utilisant la variable d’envir env STARSHIP_LOG=trace starship module rust ``` -Si starship est lent, vous pouvez essayer d’utiliser la commande `timings` pour voir si un module ou une commande particulière est à blâmer. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/id-ID/advanced-config/README.md b/docs/id-ID/advanced-config/README.md index d7570a27..927007f0 100644 --- a/docs/id-ID/advanced-config/README.md +++ b/docs/id-ID/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Catatan: Right propmt merupakan sebuah baris yang mengikuti lokasi baris inputan `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Contoh diff --git a/docs/id-ID/faq/README.md b/docs/id-ID/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/id-ID/faq/README.md +++ b/docs/id-ID/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/it-IT/advanced-config/README.md b/docs/it-IT/advanced-config/README.md index 5e66055b..415b5768 100644 --- a/docs/it-IT/advanced-config/README.md +++ b/docs/it-IT/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Esempio diff --git a/docs/it-IT/faq/README.md b/docs/it-IT/faq/README.md index 2ef9ecd6..b9f10de4 100644 --- a/docs/it-IT/faq/README.md +++ b/docs/it-IT/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/ja-JP/advanced-config/README.md b/docs/ja-JP/advanced-config/README.md index 8e47152b..78044786 100644 --- a/docs/ja-JP/advanced-config/README.md +++ b/docs/ja-JP/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Invoke-Expression (&starship init powershell) `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### 設定例 diff --git a/docs/ja-JP/faq/README.md b/docs/ja-JP/faq/README.md index 9bcce73e..de81beb7 100644 --- a/docs/ja-JP/faq/README.md +++ b/docs/ja-JP/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/ko-KR/advanced-config/README.md b/docs/ko-KR/advanced-config/README.md index b084813a..8cf7fbeb 100644 --- a/docs/ko-KR/advanced-config/README.md +++ b/docs/ko-KR/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Invoke-Expression (&starship init powershell) `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### 예시 diff --git a/docs/ko-KR/faq/README.md b/docs/ko-KR/faq/README.md index 462d0c50..e1ee2aa3 100644 --- a/docs/ko-KR/faq/README.md +++ b/docs/ko-KR/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/nl-NL/advanced-config/README.md b/docs/nl-NL/advanced-config/README.md index 385ba21c..d110b7a4 100644 --- a/docs/nl-NL/advanced-config/README.md +++ b/docs/nl-NL/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example diff --git a/docs/nl-NL/faq/README.md b/docs/nl-NL/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/nl-NL/faq/README.md +++ b/docs/nl-NL/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/no-NO/advanced-config/README.md b/docs/no-NO/advanced-config/README.md index 385ba21c..d110b7a4 100644 --- a/docs/no-NO/advanced-config/README.md +++ b/docs/no-NO/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example diff --git a/docs/no-NO/faq/README.md b/docs/no-NO/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/no-NO/faq/README.md +++ b/docs/no-NO/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/pl-PL/advanced-config/README.md b/docs/pl-PL/advanced-config/README.md index b3e25ff9..60c57f44 100644 --- a/docs/pl-PL/advanced-config/README.md +++ b/docs/pl-PL/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example diff --git a/docs/pl-PL/faq/README.md b/docs/pl-PL/faq/README.md index 77ab5ac7..5b3bc23e 100644 --- a/docs/pl-PL/faq/README.md +++ b/docs/pl-PL/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/pt-BR/advanced-config/README.md b/docs/pt-BR/advanced-config/README.md index 4169424b..f87995dd 100644 --- a/docs/pt-BR/advanced-config/README.md +++ b/docs/pt-BR/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt e TransientRightPrompt em Bash -O framework [Ble.sh](https://github.com/akinomyoga/ble.sh) permite substituir o prompt anteriormente impresso por strings personalizadas. Isso é útil em casos onde nem sempre todas as informações do prompt são necessárias. Para habilitar isso, coloque em `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. Isso é útil em casos onde nem sempre todas as informações do prompt são necessárias. Para habilitar isso, coloque em `~/.bashrc` `bleopt prompt_ps1_transient=`: O \ aqui é uma lista separada por dois pontos de `always`, `same-dir` e `trim`. Quando `prompt_ps1_final` está vazio e esta opção tem um valor não-vazio, o prompt especificado pelo `PS1` é apagado ao sair da linha de comando atual. Se o valor contém um campo `trim`, apenas a última linha de multilinha `PS1` é preservada e as outras linhas são apagadas. Caso contrário, a linha de comando será redesenhada como se `PS1=` fosse especificado. Quando um campo `same-dir` está contido no valor e o diretório de trabalho atual difere do diretório final da linha de comando anterior, esta opção `prompt_ps1_transient` é ignorada. @@ -227,7 +227,7 @@ Nota: O prompt direito é uma única linha após o local de entrada. To right al `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Exemplo diff --git a/docs/pt-BR/faq/README.md b/docs/pt-BR/faq/README.md index 1c97f803..c5ee4ec5 100644 --- a/docs/pt-BR/faq/README.md +++ b/docs/pt-BR/faq/README.md @@ -72,7 +72,7 @@ Você pode ativar os logs de debug usando a variavel de ambiente `STARSHIP_LOG`. env STARSHIP_LOG=trace starship module rust ``` -Se o starship começa a ficar lento você pode tentar usar o comando `timings` para ver se tem um modulo ou comando para culpar. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/pt-PT/advanced-config/README.md b/docs/pt-PT/advanced-config/README.md index 385ba21c..d110b7a4 100644 --- a/docs/pt-PT/advanced-config/README.md +++ b/docs/pt-PT/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example diff --git a/docs/pt-PT/faq/README.md b/docs/pt-PT/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/pt-PT/faq/README.md +++ b/docs/pt-PT/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/ru-RU/advanced-config/README.md b/docs/ru-RU/advanced-config/README.md index 70ba2d91..44b8a7c1 100644 --- a/docs/ru-RU/advanced-config/README.md +++ b/docs/ru-RU/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Пример diff --git a/docs/ru-RU/faq/README.md b/docs/ru-RU/faq/README.md index 830507f3..d2c88a58 100644 --- a/docs/ru-RU/faq/README.md +++ b/docs/ru-RU/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/tr-TR/advanced-config/README.md b/docs/tr-TR/advanced-config/README.md index 9f00d7f2..8772019a 100644 --- a/docs/tr-TR/advanced-config/README.md +++ b/docs/tr-TR/advanced-config/README.md @@ -83,7 +83,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Example diff --git a/docs/tr-TR/faq/README.md b/docs/tr-TR/faq/README.md index 8fba59ca..f9c7529b 100644 --- a/docs/tr-TR/faq/README.md +++ b/docs/tr-TR/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/uk-UA/advanced-config/README.md b/docs/uk-UA/advanced-config/README.md index 0550015e..5e4158ff 100644 --- a/docs/uk-UA/advanced-config/README.md +++ b/docs/uk-UA/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt та TransientRightPrompt в Bash -[Ble.sh](https://github.com/akinomyoga/ble.sh) дозволяє замінювати попередньо надрукований командний рядок іншим рядком. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Для увімкнення цього додайте до `~/.bashrc` рядок `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Для увімкнення цього додайте до `~/.bashrc` рядок `bleopt prompt_ps1_transient=`: \ тут  – це розділений двокрапкою список `always`, `same-dir` та `trim`. Якщо `prompt_ps1_final` порожній і цей параметр має не пусте значення, командний рядок, вказаний у `PS1` буде стертий при виході з поточного командного рядка. Якщо значення містить поле `trim`, тільки останній рядок багаторядкового `PS1` буде збережений, а інші вилучені. В іншому випадку командний рядок буде встановлено перестворено, якщо вказано `PS1=`. Коли поле `same-dir` міститься у значені та поточна тека є відмінною від останньої теки у попередньому виводі командного рядка, параметр `prompt_ps1_transient` не враховується. @@ -227,7 +227,7 @@ Invoke-Expression (&starship init powershell) `right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Примітка: фреймворк [Ble.sh](https://github.com/akinomyoga/ble.sh) має бути встановлений для того, щоб використовувати розташування командного рядка в bash праворуч. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Приклад diff --git a/docs/uk-UA/faq/README.md b/docs/uk-UA/faq/README.md index 8a3f5f2d..87a18233 100644 --- a/docs/uk-UA/faq/README.md +++ b/docs/uk-UA/faq/README.md @@ -72,7 +72,7 @@ Starship виконує різні команди, щоб отримати ін env STARSHIP_LOG=trace starship module rust ``` -Якщо Starship працює повільно, ви можете спробувати використати команду `timings`, щоб побачити, чи є певний модуль або команда, які можна в цьому звинуватити. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/vi-VN/advanced-config/README.md b/docs/vi-VN/advanced-config/README.md index b4622142..f8680a08 100644 --- a/docs/vi-VN/advanced-config/README.md +++ b/docs/vi-VN/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### Ví dụ diff --git a/docs/vi-VN/faq/README.md b/docs/vi-VN/faq/README.md index 0e32b87e..03c3d446 100644 --- a/docs/vi-VN/faq/README.md +++ b/docs/vi-VN/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/zh-CN/advanced-config/README.md b/docs/zh-CN/advanced-config/README.md index 45598936..2cdf93b1 100644 --- a/docs/zh-CN/advanced-config/README.md +++ b/docs/zh-CN/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Invoke-Expression (&starship init powershell) `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### 示例 diff --git a/docs/zh-CN/faq/README.md b/docs/zh-CN/faq/README.md index 7514d2aa..3a08049c 100644 --- a/docs/zh-CN/faq/README.md +++ b/docs/zh-CN/faq/README.md @@ -72,7 +72,7 @@ Starship 会执行数个不同的命令来获取应该显示的信息,例如 env STARSHIP_LOG=trace starship module rust ``` -若 Starship 运行缓慢,您可以使用 `timings` 命令查看运行缓慢的组件或命令。 +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings diff --git a/docs/zh-TW/advanced-config/README.md b/docs/zh-TW/advanced-config/README.md index 4eea479b..aa8dbbf2 100644 --- a/docs/zh-TW/advanced-config/README.md +++ b/docs/zh-TW/advanced-config/README.md @@ -82,7 +82,7 @@ enable_transience ## TransientPrompt and TransientRightPrompt in Bash -The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: +The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. When `prompt_ps1_final` is empty and this option has a non-empty value, the prompt specified by `PS1` is erased on leaving the current command line. If the value contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the value and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. @@ -227,7 +227,7 @@ Note: The right prompt is a single line following the input location. To right a `right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash. -Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework should be installed in order to use right prompt in bash. +Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash. ### 範例 diff --git a/docs/zh-TW/faq/README.md b/docs/zh-TW/faq/README.md index f6fa1047..54f2f2cf 100644 --- a/docs/zh-TW/faq/README.md +++ b/docs/zh-TW/faq/README.md @@ -72,7 +72,7 @@ You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs ca env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that to blame. +If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. ```sh env STARSHIP_LOG=trace starship timings From eb80dbab99e38b5018aa3fb70b06ae9e4d793b24 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Mon, 25 Mar 2024 02:59:43 +0100 Subject: [PATCH 222/651] revert: "build(deps): update rust crate gix to 0.61.1" (#5878) --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dcd7ee08..f733725c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1058,9 +1058,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.61.1" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03e6e306a2c85bcd8e1de93dfd061531068ccd45eb05633d80c7e93f7e55fb9" +checksum = "e4e0e59a44bf00de058ee98d6ecf3c9ed8f8842c1da642258ae4120d41ded8f7" dependencies = [ "gix-actor", "gix-commitgraph", diff --git a/Cargo.toml b/Cargo.toml index c6b908d8..198db000 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ dirs-next = "2.0.0" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.61.1", default-features = false, features = ["max-performance-safe", "revision"] } +gix = { version = "0.61.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.1", optional = true } indexmap = { version = "2.2.6", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } From 1ec8626f2607461ceb9b6f41d42826891db4934e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 01:42:08 +0000 Subject: [PATCH 223/651] build(deps): update rust crate clap to 4.5.4 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f733725c..78681da0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -423,9 +423,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -456,9 +456,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ "heck", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 198db000..51c5492c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.35", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.3", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.5.4", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.1" dirs-next = "2.0.0" dunce = "1.0.4" From 334e98d192b56be32a3964a160953f7249c6d367 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 07:21:08 +0000 Subject: [PATCH 224/651] build(deps): update rust crate serde_json to 1.0.115 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 78681da0..07bf349b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2687,9 +2687,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 51c5492c..98c61c5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.4", default-features = false, features = ["perf", "std rust-ini = "0.21.0" semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } -serde_json = "1.0.114" +serde_json = "1.0.115" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From e4d0c2db5a743a6624f97e5b3ead555e994c5f09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 14:35:21 +0000 Subject: [PATCH 225/651] build(deps): update rust crate chrono to 0.4.37 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07bf349b..d42f03b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -409,9 +409,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index 98c61c5c..c1d88575 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.35", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.37", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.4", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.1" dirs-next = "2.0.0" From 796a411602c9ca4e5103c54247440f4efe892918 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Fri, 29 Mar 2024 12:14:57 +0100 Subject: [PATCH 226/651] fix: replace unmaintained crates `yaml-rust`, `dirs-next` (#5887) --- Cargo.lock | 130 ++++++++++++++++++++++++++++++++++---- Cargo.toml | 4 +- src/bug_report.rs | 3 +- src/logger.rs | 2 +- src/modules/daml.rs | 2 +- src/modules/haskell.rs | 4 +- src/modules/kubernetes.rs | 2 +- src/modules/openstack.rs | 2 +- src/modules/package.rs | 8 +-- src/modules/pulumi.rs | 2 +- src/utils.rs | 2 +- 11 files changed, 131 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d42f03b2..03f7ebde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,6 +110,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +[[package]] +name = "arraydeque" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" + [[package]] name = "arrayvec" version = "0.7.4" @@ -716,7 +722,16 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" dependencies = [ - "dirs-sys", + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", ] [[package]] @@ -740,6 +755,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -784,6 +811,70 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "encoding" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +dependencies = [ + "encoding-index-japanese", + "encoding-index-korean", + "encoding-index-simpchinese", + "encoding-index-singlebyte", + "encoding-index-tradchinese", +] + +[[package]] +name = "encoding-index-japanese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-korean" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-simpchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-singlebyte" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding-index-tradchinese" +version = "1.20141219.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" +dependencies = [ + "encoding_index_tests", +] + +[[package]] +name = "encoding_index_tests" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" + [[package]] name = "enumflags2" version = "0.7.8" @@ -1592,6 +1683,15 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.3", +] + [[package]] name = "heck" version = "0.5.0" @@ -1812,12 +1912,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -2105,6 +2199,12 @@ dependencies = [ "pathdiff", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "ordered-float" version = "2.10.1" @@ -2862,7 +2962,7 @@ dependencies = [ "clap", "clap_complete", "deelevate", - "dirs-next", + "dirs 5.0.1", "dunce", "gethostname", "gix", @@ -2908,7 +3008,7 @@ dependencies = [ "which", "windows 0.54.0", "winres", - "yaml-rust", + "yaml-rust2", ] [[package]] @@ -3014,7 +3114,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da31aef70da0f6352dbcb462683eb4dd2bfad01cf3fc96cf204547b9a839a585" dependencies = [ - "dirs", + "dirs 4.0.0", "fnv", "nom 5.1.3", "phf", @@ -3728,12 +3828,14 @@ dependencies = [ ] [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "yaml-rust2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +checksum = "777f823b2efee8266b47d35cc79ab1130250c2e4d5dbd3baf0bf3f776ea03a0a" dependencies = [ - "linked-hash-map", + "arraydeque", + "encoding", + "hashlink", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index c1d88575..011aeab0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] chrono = { version = "0.4.37", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.4", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.1" -dirs-next = "2.0.0" +dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 @@ -87,7 +87,7 @@ unicode-width = "0.1.11" urlencoding = "2.1.3" versions = "6.2.0" which = "6.0.1" -yaml-rust = "0.4.5" +yaml-rust2 = "0.7.0" process_control = { version = "4.1.0", features = ["crossbeam-channel"] } diff --git a/src/bug_report.rs b/src/bug_report.rs index 39df1691..5c4a15ab 100644 --- a/src/bug_report.rs +++ b/src/bug_report.rs @@ -201,8 +201,7 @@ fn get_terminal_info() -> TerminalInfo { fn get_config_path(shell: &str) -> Option { if shell == "nu" { - return dirs_next::config_dir() - .map(|config_dir| config_dir.join("nushell").join("config.nu")); + return dirs::config_dir().map(|config_dir| config_dir.join("nushell").join("config.nu")); } utils::home_dir().and_then(|home_dir| { diff --git a/src/logger.rs b/src/logger.rs index e8c60ffa..da22bfcc 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -26,7 +26,7 @@ pub fn get_log_dir() -> PathBuf { .unwrap_or_else(|| { utils::home_dir() .map(|home| home.join(".cache")) - .or_else(dirs_next::cache_dir) + .or_else(dirs::cache_dir) .unwrap_or_else(std::env::temp_dir) .join("starship") }) diff --git a/src/modules/daml.rs b/src/modules/daml.rs index 1784ccd3..ef013bc3 100644 --- a/src/modules/daml.rs +++ b/src/modules/daml.rs @@ -66,7 +66,7 @@ fn get_daml_sdk_version(context: &Context) -> Option { fn read_sdk_version_from_daml_yaml(context: &Context) -> Option { let file_contents = context.read_file_from_pwd(DAML_YAML)?; - let daml_yaml = yaml_rust::YamlLoader::load_from_str(&file_contents).ok()?; + let daml_yaml = yaml_rust2::YamlLoader::load_from_str(&file_contents).ok()?; let sdk_version = daml_yaml.first()?[DAML_SDK_VERSION].as_str()?; Some(sdk_version.to_string()) } diff --git a/src/modules/haskell.rs b/src/modules/haskell.rs index 52f425ec..6d9c2025 100644 --- a/src/modules/haskell.rs +++ b/src/modules/haskell.rs @@ -64,7 +64,7 @@ fn get_snapshot(context: &Context) -> Option { return None; } let file_contents = context.read_file_from_pwd("stack.yaml")?; - let yaml = yaml_rust::YamlLoader::load_from_str(&file_contents).ok()?; + let yaml = yaml_rust2::YamlLoader::load_from_str(&file_contents).ok()?; let version = yaml.first()?["resolver"] .as_str() .or_else(|| yaml.first()?["snapshot"].as_str()) @@ -105,7 +105,7 @@ mod tests { fn folder_stack() -> io::Result<()> { let cases = vec![ ("resolver: lts-18.12\n", "lts-18.12"), - ("snapshot:\tnightly-2011-11-11", "nightly-2011-11-11"), + ("snapshot: nightly-2011-11-11", "nightly-2011-11-11"), ("snapshot: ghc-8.10.7", "ghc-8.10.7"), ( "snapshot: https://github.com/whatever/xxx.yaml\n", diff --git a/src/modules/kubernetes.rs b/src/modules/kubernetes.rs index 042f4773..ef6a4a1f 100644 --- a/src/modules/kubernetes.rs +++ b/src/modules/kubernetes.rs @@ -1,4 +1,4 @@ -use yaml_rust::YamlLoader; +use yaml_rust2::YamlLoader; use std::borrow::Cow; use std::env; diff --git a/src/modules/openstack.rs b/src/modules/openstack.rs index d5e59f63..e8ecec30 100644 --- a/src/modules/openstack.rs +++ b/src/modules/openstack.rs @@ -1,4 +1,4 @@ -use yaml_rust::YamlLoader; +use yaml_rust2::YamlLoader; use super::{Context, Module, ModuleConfig}; diff --git a/src/modules/package.rs b/src/modules/package.rs index f72cb059..3ca1c884 100644 --- a/src/modules/package.rs +++ b/src/modules/package.rs @@ -135,7 +135,7 @@ fn get_julia_project_version(context: &Context, config: &PackageConfig) -> Optio fn get_helm_package_version(context: &Context, config: &PackageConfig) -> Option { let file_contents = context.read_file_from_pwd("Chart.yaml")?; - let yaml = yaml_rust::YamlLoader::load_from_str(&file_contents).ok()?; + let yaml = yaml_rust2::YamlLoader::load_from_str(&file_contents).ok()?; let version = yaml.first()?["version"].as_str()?; format_version(version, config.version_format) @@ -286,7 +286,7 @@ fn get_nimble_version(context: &Context, config: &PackageConfig) -> Option Option { let file_contents = context.read_file_from_pwd("shard.yml")?; - let data = yaml_rust::YamlLoader::load_from_str(&file_contents).ok()?; + let data = yaml_rust2::YamlLoader::load_from_str(&file_contents).ok()?; let raw_version = data.first()?["version"].as_str()?; format_version(raw_version, config.version_format) @@ -295,7 +295,7 @@ fn get_shard_version(context: &Context, config: &PackageConfig) -> Option Option { let file_contents = context.read_file_from_pwd("daml.yaml")?; - let daml_yaml = yaml_rust::YamlLoader::load_from_str(&file_contents).ok()?; + let daml_yaml = yaml_rust2::YamlLoader::load_from_str(&file_contents).ok()?; let raw_version = daml_yaml.first()?["version"].as_str()?; format_version(raw_version, config.version_format) @@ -304,7 +304,7 @@ fn get_daml_project_version(context: &Context, config: &PackageConfig) -> Option fn get_dart_pub_version(context: &Context, config: &PackageConfig) -> Option { let file_contents = context.read_file_from_pwd("pubspec.yaml")?; - let data = yaml_rust::YamlLoader::load_from_str(&file_contents).ok()?; + let data = yaml_rust2::YamlLoader::load_from_str(&file_contents).ok()?; let raw_version = data.first()?["version"].as_str()?; format_version(raw_version, config.version_format) diff --git a/src/modules/pulumi.rs b/src/modules/pulumi.rs index 6df36dde..a5d0b304 100644 --- a/src/modules/pulumi.rs +++ b/src/modules/pulumi.rs @@ -7,7 +7,7 @@ use std::fs::File; use std::io::{BufReader, Read}; use std::path::{Path, PathBuf}; use std::str::FromStr; -use yaml_rust::{Yaml, YamlLoader}; +use yaml_rust2::{Yaml, YamlLoader}; use super::{Context, Module, ModuleConfig}; use crate::configs::pulumi::PulumiConfig; diff --git a/src/utils.rs b/src/utils.rs index 35cee76d..aa1819b5 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -649,7 +649,7 @@ fn render_time_component((component, suffix): (&u128, &&str)) -> String { } pub fn home_dir() -> Option { - dirs_next::home_dir() + dirs::home_dir() } const HEXTABLE: &[char] = &[ From babf941cac4aab55b46fa1bdf658edea483af0b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Mar 2024 11:19:49 +0000 Subject: [PATCH 227/651] build(deps): update rust crate yaml-rust2 to 0.8.0 --- Cargo.lock | 69 ++++++------------------------------------------------ Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03f7ebde..3d53ce9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -812,69 +812,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] -name = "encoding" -version = "0.2.33" +name = "encoding_rs" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ - "encoding-index-japanese", - "encoding-index-korean", - "encoding-index-simpchinese", - "encoding-index-singlebyte", - "encoding-index-tradchinese", + "cfg-if", ] -[[package]] -name = "encoding-index-japanese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-korean" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-simpchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-singlebyte" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding-index-tradchinese" -version = "1.20141219.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" -dependencies = [ - "encoding_index_tests", -] - -[[package]] -name = "encoding_index_tests" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" - [[package]] name = "enumflags2" version = "0.7.8" @@ -3829,12 +3774,12 @@ dependencies = [ [[package]] name = "yaml-rust2" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777f823b2efee8266b47d35cc79ab1130250c2e4d5dbd3baf0bf3f776ea03a0a" +checksum = "498f4d102a79ea1c9d4dd27573c0fc96ad74c023e8da38484e47883076da25fb" dependencies = [ "arraydeque", - "encoding", + "encoding_rs", "hashlink", ] diff --git a/Cargo.toml b/Cargo.toml index 011aeab0..882a50f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,7 +87,7 @@ unicode-width = "0.1.11" urlencoding = "2.1.3" versions = "6.2.0" which = "6.0.1" -yaml-rust2 = "0.7.0" +yaml-rust2 = "0.8.0" process_control = { version = "4.1.0", features = ["crossbeam-channel"] } From 940eca58673257a30738b208904636e3a1efd44f Mon Sep 17 00:00:00 2001 From: David Knaack Date: Fri, 29 Mar 2024 16:40:58 +0100 Subject: [PATCH 228/651] chore(cargo-deny): migrate to advisories & licenses v2 config (#5877) --- deny.toml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/deny.toml b/deny.toml index 9178a858..89848b36 100644 --- a/deny.toml +++ b/deny.toml @@ -1,20 +1,17 @@ [advisories] -vulnerability = "deny" -unmaintained = "warn" -yanked = "warn" -notice = "warn" +version = 2 # A list of advisory IDs to ignore. Note that ignored advisories will still # output a note when they are encountered. ignore = [ - # "RUSTSEC-0000-0000", + # { id = "RUSTSEC-0000-0000", reason = "" }, ] [licenses] -# The lint level for crates which do not have a detectable license -unlicensed = "deny" +version = 2 + # List of explicitly allowed licenses allow = [ "Apache-2.0 WITH LLVM-exception", From 4131edaa609887b866a5497648858fe6d39a3f99 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 29 Mar 2024 16:41:58 +0100 Subject: [PATCH 229/651] chore(master): release 1.18.2 (#5882) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0e98989..710eb3c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.18.2](https://github.com/starship/starship/compare/v1.18.1...v1.18.2) (2024-03-29) + + +### Bug Fixes + +* replace unmaintained crates `yaml-rust`, `dirs-next` ([#5887](https://github.com/starship/starship/issues/5887)) ([796a411](https://github.com/starship/starship/commit/796a411602c9ca4e5103c54247440f4efe892918)) + + +### Reverts + +* "build(deps): update rust crate gix to 0.61.1" ([#5878](https://github.com/starship/starship/issues/5878)) ([eb80dba](https://github.com/starship/starship/commit/eb80dbab99e38b5018aa3fb70b06ae9e4d793b24)) + ## [1.18.1](https://github.com/starship/starship/compare/v1.18.0...v1.18.1) (2024-03-24) diff --git a/Cargo.lock b/Cargo.lock index 3d53ce9c..698d1964 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2901,7 +2901,7 @@ dependencies = [ [[package]] name = "starship" -version = "1.18.1" +version = "1.18.2" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index 882a50f8..16d0c260 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starship" -version = "1.18.1" +version = "1.18.2" authors = ["Starship Contributors"] build = "build.rs" categories = ["command-line-utilities"] From df477694d34d7cf80e72b14e4ccb50dfab04f854 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Sat, 30 Mar 2024 00:42:36 +0900 Subject: [PATCH 230/651] docs(i18n): new Crowdin updates (#5883) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) --- docs/zh-TW/README.md | 14 ++++----- docs/zh-TW/faq/README.md | 8 ++--- docs/zh-TW/guide/README.md | 54 ++++++++++++++++----------------- docs/zh-TW/installing/README.md | 4 +-- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/zh-TW/README.md b/docs/zh-TW/README.md index 74ab5271..194c5dba 100644 --- a/docs/zh-TW/README.md +++ b/docs/zh-TW/README.md @@ -22,7 +22,7 @@ features: footer: ISC Licensed | Copyright © 2019-present Starship Contributors #Used for the description meta tag, for SEO metaTitle: "Starship:跨 Shell 提示字元" -description: Starship 是適合任何 shell 的最小、極速、高度客製化的提示字元! 顯示你需要的訊息,同時保持順暢與最小化。 Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. +description: Starship 是適合任何 shell 的最小、極速、高度客製化的提示字元! 顯示你需要的訊息,同時保持順暢與最小化。 有針對 Bash、Fish、ZSH、Ion 、Tcsh、Elvish、Nu、Xonsh、Cmd 與 Powershell 的快速安裝指南。 ---

    Android -Install Starship using any of the following package managers: +透過下列的套件管理器安裝 Starship: -| Repository | Instructions | +| 儲存庫 | 說明 | | --------------------------------------------------------------------------------- | ---------------------- | | [Termux](https://github.com/termux/termux-packages/tree/master/packages/starship) | `pkg install starship` | @@ -200,32 +200,32 @@ Install Starship using any of the following package managers:
    BSD -Install Starship using any of the following package managers: +透過下列的套件管理器安裝 Starship: -| Distribution | Repository | Instructions | -| ------------ | -------------------------------------------------------- | --------------------------------- | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | -| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` | +| 發行版本 | 儲存庫 | 說明 | +| ---------- | -------------------------------------------------------- | --------------------------------- | +| **_任一版本_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| FreeBSD | [FreshPorts](https://www.freshports.org/shells/starship) | `pkg install starship` | +| NetBSD | [pkgsrc](https://pkgsrc.se/shells/starship) | `pkgin install starship` |
    Linux -Install the latest version for your system: +為你的系統安裝最新版本: ```sh curl -sS https://starship.rs/install.sh | sh ``` -Alternatively, install Starship using any of the following package managers: +或者,透過下列的套件管理器安裝 Starship: -| Distribution | Repository | Instructions | +| 發行版本 | 儲存庫 | 說明 | | ------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -| **_Any_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | -| _Any_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | -| _Any_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | +| **_任一版本_** | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | +| _任一版本_ | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | +| _任一版本_ | [Linuxbrew](https://formulae.brew.sh/formula/starship) | `brew install starship` | | Alpine Linux 3.13+ | [Alpine Linux Packages](https://pkgs.alpinelinux.org/packages?name=starship) | `apk add starship` | | Arch Linux | [Arch Linux Extra](https://archlinux.org/packages/extra/x86_64/starship) | `pacman -S starship` | | CentOS 7+ | [Copr](https://copr.fedorainfracloud.org/coprs/atim/starship) | `dnf copr enable atim/starship`
    `dnf install starship` | @@ -240,15 +240,15 @@ Alternatively, install Starship using any of the following package managers:
    macOS -Install the latest version for your system: +為你的系統安裝最新版本: ```sh curl -sS https://starship.rs/install.sh | sh ``` -Alternatively, install Starship using any of the following package managers: +或者,透過下列的套件管理器安裝 Starship: -| Repository | Instructions | +| 儲存庫 | 說明 | | -------------------------------------------------------- | --------------------------------------- | | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | | [conda-forge](https://anaconda.org/conda-forge/starship) | `conda install -c conda-forge starship` | @@ -260,11 +260,11 @@ Alternatively, install Starship using any of the following package managers:
    Windows -Install the latest version for your system with the MSI-installers from the [releases section](https://github.com/starship/starship/releases/latest). +透過[發布區](https://github.com/starship/starship/releases/latest)中的 MSI 安裝程式為你的系統安裝最新版本: -Install Starship using any of the following package managers: +透過下列的套件管理器安裝 Starship: -| Repository | Instructions | +| 儲存庫 | 說明 | | -------------------------------------------------------------------------------------------- | --------------------------------------- | | **[crates.io](https://crates.io/crates/starship)** | `cargo install starship --locked` | | [Chocolatey](https://community.chocolatey.org/packages/starship) | `choco install starship` | @@ -338,14 +338,14 @@ eval $(starship init ion)
    Nushell -Add the following to the end of your Nushell env file (find it by running `$nu.env-path` in Nushell): +新增下列內容至你的 Nushell env 檔案中的最下方(在 Nushell 執行 `$nu.env-path` 找到它)。 ```sh mkdir ~/.cache/starship starship init nu | save -f ~/.cache/starship/init.nu ``` -And add the following to the end of your Nushell configuration (find it by running `$nu.config-path`): +新增下列的內容至你的 Nushell 設定檔最下方(執行 `$nu.config-path` 找到它): ```sh use ~/.cache/starship/init.nu @@ -358,7 +358,7 @@ Note: Only Nushell v0.78+ is supported
    PowerShell -Add the following to the end of your PowerShell configuration (find it by running `$PROFILE`): +新增下列的內容至你的 PowerShell 設定檔最下方(執行 `$PROFILE` 找到它): ```powershell Invoke-Expression (&starship init powershell) @@ -421,11 +421,11 @@ eval "$(starship init zsh)" 請看之前這些幫助我們創造 Starship 的前任作品。 🙏 -- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – A ZSH prompt for astronauts. +- **[denysdovhan/spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt)** – 一個給太空人用的 ZSH 提示符號。 -- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – Cross-shell robbyrussell theme written in JavaScript. +- **[denysdovhan/robbyrussell-node](https://github.com/denysdovhan/robbyrussell-node)** – 使用 JavaScript 寫出的跨終端機 robbyrussell 主題。 -- **[reujab/silver](https://github.com/reujab/silver)** – A cross-shell customizable powerline-like prompt with icons. +- **[reujab/silver](https://github.com/reujab/silver)** - 一個跨 shell、可客製化、像 powerline 的圖案提示符號。 ## ❤️ 贊助我們 diff --git a/docs/zh-TW/installing/README.md b/docs/zh-TW/installing/README.md index 2cb44861..6729e5a1 100644 --- a/docs/zh-TW/installing/README.md +++ b/docs/zh-TW/installing/README.md @@ -5,7 +5,7 @@ 1. 下載 **starship** 執行檔到你的電腦裡 1. 修改 shell 的初始化腳本,讓其使用 starship 作為提示字元 -For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. 然而,對於一些較特別的平台,我們需要不同的安裝指引。 +多數的使用者中, [主頁面](../guide/#🚀-installation)中的教學可以順利運作。 然而,對於一些較特別的平台,我們需要不同的安裝指引。 有太多平台不適用於主要的 README.md 檔案了,所以這裡有一些來自社群的其他平台的安裝指引。 你的平台不在這裡嗎? 如果你找出怎麼安裝,請幫我們加上你的指引! @@ -39,7 +39,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.term ### 安裝 -On Funtoo Linux, starship can be installed from [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) via Portage: +在 Funtoo Linux,starship 可以透過 Portage 並從 [core-kit](https://github.com/funtoo/core-kit/tree/1.4-release/app-shells/starship) 中安裝: ```sh emerge app-shells/starship From be4e97c2d9169cbf0bc30e271dd4ba07530dc46f Mon Sep 17 00:00:00 2001 From: Ramy <61938423+Ramiellll@users.noreply.github.com> Date: Sat, 30 Mar 2024 09:38:19 +0100 Subject: [PATCH 231/651] fix(bun): change default icon (#5880) * feat: change bun icon #5871 * fix: reverts docs --- .github/config-schema.json | 4 ++-- docs/config/README.md | 2 +- src/configs/bun.rs | 2 +- src/modules/bun.rs | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 743f00ed..c3a6f70c 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -94,7 +94,7 @@ "disabled": false, "format": "via [$symbol($version )]($style)", "style": "bold red", - "symbol": "🍞 ", + "symbol": "🥟 ", "version_format": "v${raw}" }, "allOf": [ @@ -2119,7 +2119,7 @@ "type": "string" }, "symbol": { - "default": "🍞 ", + "default": "🥟 ", "type": "string" }, "style": { diff --git a/docs/config/README.md b/docs/config/README.md index 47f45676..0c08d076 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -628,7 +628,7 @@ By default the module will be shown if any of the following conditions are met: | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'🍞 '` | A format string representing the symbol of Bun. | +| `symbol` | `'🥟 '` | A format string representing the symbol of Bun. | | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `['bun.lockb', 'bunfig.toml']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | diff --git a/src/configs/bun.rs b/src/configs/bun.rs index 4d527d58..db50a50c 100644 --- a/src/configs/bun.rs +++ b/src/configs/bun.rs @@ -23,7 +23,7 @@ impl<'a> Default for BunConfig<'a> { BunConfig { format: "via [$symbol($version )]($style)", version_format: "v${raw}", - symbol: "🍞 ", + symbol: "🥟 ", style: "bold red", disabled: false, detect_extensions: vec![], diff --git a/src/modules/bun.rs b/src/modules/bun.rs index e2ebf164..b83c5cb2 100644 --- a/src/modules/bun.rs +++ b/src/modules/bun.rs @@ -89,7 +89,7 @@ mod tests { let dir = tempfile::tempdir()?; File::create(dir.path().join("bun.lockb"))?.sync_all()?; let actual = ModuleRenderer::new("bun").path(dir.path()).collect(); - let expected = Some(format!("via {}", Color::Red.bold().paint("🍞 v0.1.4 "))); + let expected = Some(format!("via {}", Color::Red.bold().paint("🥟 v0.1.4 "))); assert_eq!(expected, actual); dir.close() } @@ -102,7 +102,7 @@ mod tests { .path(dir.path()) .cmd("bun --version", None) .collect(); - let expected = Some(format!("via {}", Color::Red.bold().paint("🍞 "))); + let expected = Some(format!("via {}", Color::Red.bold().paint("🥟 "))); assert_eq!(expected, actual); dir.close() } From 5d4007f5c179657611d7205e78cd8075eebbf532 Mon Sep 17 00:00:00 2001 From: Andrei Lapshin <321946+alapshin@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:17:14 +0200 Subject: [PATCH 232/651] docs(preset): fix incorrect Rocky Linux key in plain text symbols preset (#5899) --- docs/public/presets/toml/plain-text-symbols.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/public/presets/toml/plain-text-symbols.toml b/docs/public/presets/toml/plain-text-symbols.toml index 90577451..244dc3a7 100644 --- a/docs/public/presets/toml/plain-text-symbols.toml +++ b/docs/public/presets/toml/plain-text-symbols.toml @@ -157,7 +157,7 @@ Pop = "pop " Raspbian = "rasp " Redhat = "rhl " RedHatEnterprise = "rhel " -Rocky = "rky " +RockyLinux = "rky " Redox = "redox " Solus = "sol " SUSE = "suse " From d12d9a2751f5b38f063314e1812ea82fec8a13ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 19:16:58 +0000 Subject: [PATCH 233/651] build(deps): update crate-ci/typos action to v1.20.0 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 50326c5f..f141c752 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.19.0 + - uses: crate-ci/typos@v1.20.0 From c4b6fd0804f7184ef6c4ad1546b7a0231578ad00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 00:03:27 +0000 Subject: [PATCH 234/651] build(deps): update crate-ci/typos action to v1.20.1 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index f141c752..8c3ae65a 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.0 + - uses: crate-ci/typos@v1.20.1 From 55e11a42e5cabc3ef09e3e7d30e57a545c27d5c6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 04:55:31 +0000 Subject: [PATCH 235/651] build(deps): update pest crates to 2.7.9 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 698d1964..c44668b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2249,9 +2249,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" +checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" dependencies = [ "memchr", "thiserror", @@ -2260,9 +2260,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" +checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c" dependencies = [ "pest", "pest_generator", @@ -2270,9 +2270,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" +checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd" dependencies = [ "pest", "pest_meta", @@ -2283,9 +2283,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" +checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca" dependencies = [ "once_cell", "pest", diff --git a/Cargo.toml b/Cargo.toml index 16d0c260..6ea34e4f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ open = "5.1.2" # update os module config and tests when upgrading os_info os_info = "3.8.2" path-slash = "0.2.1" -pest = "2.7.8" -pest_derive = "2.7.8" +pest = "2.7.9" +pest_derive = "2.7.9" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.10.0" From 0f859e8b61c8ada354f4ea4147fb8752dca02c51 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Tue, 2 Apr 2024 17:45:02 +0900 Subject: [PATCH 236/651] fix(bash): use `eval` instead of a procsub for the POSIX mode (#5020) fix(bash): use eval instead of a procsub for the POSIX mode --- src/init/mod.rs | 50 +++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/src/init/mod.rs b/src/init/mod.rs index 90399a18..a6639546 100644 --- a/src/init/mod.rs +++ b/src/init/mod.rs @@ -9,11 +9,11 @@ use which::which; shell. This command evaluates a more complicated script using `source` and process substitution. -Directly using `eval` on a shell script causes it to be evaluated in -a single line, which sucks because things like comments will comment out the -rest of the script, and you have to spam semicolons everywhere. By using -source and process substitutions, we make it possible to comment and debug -the init scripts. +Directly using `eval` on a shell script without proper quoting causes it to be +evaluated in a single line, which sucks because things like comments will +comment out the rest of the script, and you have to spam semicolons +everywhere. By using source and process substitutions, we make it possible to +comment and debug the init scripts. In the future, this may be changed to just directly evaluating the initscript using whatever mechanism is available in the host shell--this two-phase solution @@ -106,8 +106,13 @@ pub fn init_stub(shell_name: &str) -> io::Result<()> { match shell_basename { "bash" => print!( - /* - * The standard bash bootstrap is: + /* We now use the following bootstrap: + * `eval -- "$(starship init bash --print-full-init)"` + * which works in any version of Bash from 3.2 to the latest + * version and also works in the POSIX mode. + * + * ---- + * Historically, the standard bash bootstrap was: * `source <(starship init bash --print-full-init)` * * Unfortunately there is an issue with bash 3.2 (the MacOS @@ -129,28 +134,25 @@ pub fn init_stub(shell_name: &str) -> io::Result<()> { * with the standard bootstrap, whereas bash 4.1 appears to be * consistently compatible. * - * The upshot of all of this, is that we will use the standard - * bootstrap whenever the bash version is 4.1 or higher. Otherwise, - * we fall back to the `/dev/stdin` solution. + * We had been using the standard bootstrap whenever the bash + * version is 4.1 or higher. Otherwise, we fell back to the + * `/dev/stdin` solution. + * + * However, process substitutions <(...) are not supported in the + * POSIX mode of Bash <= 5.0, so we switch to the approach with + * `eval -- "$(...)"`. The reason for not using `eval` seems to be + * explained at the top of this file, i.e., the script will be + * evaluated as if it is a single line, but that is caused by an + * improper quoting. * * More background can be found in these pull requests: * https://github.com/starship/starship/pull/241 * https://github.com/starship/starship/pull/278 + * https://github.com/starship/starship/issues/1674 + * https://github.com/starship/starship/pull/5020 + * https://github.com/starship/starship/issues/5382 */ - r#" - __main() {{ - local major="${{BASH_VERSINFO[0]}}" - local minor="${{BASH_VERSINFO[1]}}" - - if ((major > 4)) || {{ ((major == 4)) && ((minor >= 1)); }}; then - source <({0} init bash --print-full-init) - else - source /dev/stdin <<<"$({0} init bash --print-full-init)" - fi - }} - __main - unset -f __main - "#, + r#"eval -- "$({0} init bash --print-full-init)""#, starship.sprint_posix()? ), "zsh" => print_script(ZSH_INIT, &starship.sprint_posix()?), From 089d6d73cb860a99ec89ed2f48b8e0770845bc31 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 18:48:47 +0000 Subject: [PATCH 237/651] build(deps): update crate-ci/typos action to v1.20.3 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 8c3ae65a..cec0608f 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.1 + - uses: crate-ci/typos@v1.20.3 From a25a7d2f7fed8eb6cccafbcb8ff7fffafc13d973 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 01:58:21 +0000 Subject: [PATCH 238/651] build(deps): update rust crate strsim to 0.11.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c44668b9..71388341 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2981,9 +2981,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" diff --git a/Cargo.toml b/Cargo.toml index 6ea34e4f..96a70323 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,7 +77,7 @@ shadow-rs = { version = "0.27.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.2", optional = true } -strsim = "0.11.0" +strsim = "0.11.1" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.12", features = ["preserve_order"] } From ab3f5297943005d0af646d0565cbd79f4ee4f4d1 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 4 Apr 2024 20:33:14 +0100 Subject: [PATCH 239/651] docs(faq): fix typo (#5905) --- docs/faq/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq/README.md b/docs/faq/README.md index 8414c829..7aa28303 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -147,7 +147,7 @@ sh -c 'rm "$(command -v 'starship')"' ## How do I install Starship without `sudo`? -The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. +The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation directory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. From 86235967b45971808642bc001ec1ca5ade92e8ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 18:01:49 +0000 Subject: [PATCH 240/651] build(deps): update crate-ci/typos action to v1.20.4 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index cec0608f..14dad8c4 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.3 + - uses: crate-ci/typos@v1.20.4 From f9c4bef85d4375070c2a6b7d6c346759e8586ac7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 23:55:01 +0000 Subject: [PATCH 241/651] build(deps): update rust crate notify-rust to 4.11.0 --- Cargo.lock | 367 ++++++++++++++++++----------------------------------- Cargo.toml | 2 +- 2 files changed, 124 insertions(+), 245 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71388341..841efa7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,12 +124,14 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-broadcast" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" dependencies = [ - "event-listener 2.5.3", + "event-listener 5.2.0", + "event-listener-strategy 0.5.1", "futures-core", + "pin-project-lite", ] [[package]] @@ -140,7 +142,7 @@ checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", "event-listener 4.0.1", - "event-listener-strategy", + "event-listener-strategy 0.4.0", "futures-core", "pin-project-lite", ] @@ -151,60 +153,39 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" dependencies = [ - "async-lock 3.2.0", + "async-lock 3.3.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.1.0", + "fastrand", + "futures-lite", "slab", ] [[package]] name = "async-fs" -version = "1.6.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1" dependencies = [ - "async-lock 2.8.0", - "autocfg", + "async-lock 3.3.0", "blocking", - "futures-lite 1.13.0", + "futures-lite", ] [[package]] name = "async-io" -version = "1.13.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" -dependencies = [ - "async-lock 3.2.0", + "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.1.0", + "futures-lite", "parking", - "polling 3.3.1", - "rustix 0.38.31", + "polling", + "rustix", "slab", "tracing", "windows-sys 0.52.0", @@ -221,30 +202,33 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.1", - "event-listener-strategy", + "event-listener-strategy 0.4.0", "pin-project-lite", ] [[package]] name = "async-process" -version = "1.8.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "d999d925640d51b662b7b4e404224dd81de70f4aa4a199383c2c5e5b86885fa3" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel", + "async-io", + "async-lock 3.3.0", "async-signal", + "async-task", "blocking", "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.31", - "windows-sys 0.48.0", + "event-listener 5.2.0", + "futures-lite", + "rustix", + "tracing", + "windows-sys 0.52.0", ] [[package]] @@ -264,13 +248,13 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.2", + "async-io", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.31", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.48.0", @@ -278,15 +262,15 @@ dependencies = [ [[package]] name = "async-task" -version = "4.6.0" +version = "4.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.75" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", @@ -354,11 +338,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ "async-channel", - "async-lock 3.2.0", + "async-lock 3.3.0", "async-task", - "fastrand 2.0.1", + "fastrand", "futures-io", - "futures-lite 2.1.0", + "futures-lite", "piper", "tracing", ] @@ -380,12 +364,6 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytesize" version = "1.3.0" @@ -821,10 +799,16 @@ dependencies = [ ] [[package]] -name = "enumflags2" -version = "0.7.8" +name = "endi" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] +name = "enumflags2" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" dependencies = [ "enumflags2_derive", "serde", @@ -832,9 +816,9 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", @@ -886,9 +870,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.1.0" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" dependencies = [ "concurrent-queue", "parking", @@ -897,9 +881,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.1" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" dependencies = [ "concurrent-queue", "parking", @@ -916,21 +900,22 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener-strategy" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" +dependencies = [ + "event-listener 5.2.0", + "pin-project-lite", +] + [[package]] name = "faster-hex" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - [[package]] name = "fastrand" version = "2.0.1" @@ -1005,28 +990,13 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - [[package]] name = "futures-lite" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" dependencies = [ - "fastrand 2.0.1", + "fastrand", "futures-core", "futures-io", "parking", @@ -1341,7 +1311,7 @@ dependencies = [ "itoa", "libc", "memmap2", - "rustix 0.38.31", + "rustix", "smallvec", "thiserror", ] @@ -1586,7 +1556,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0066432d4c277f9877f091279a597ea5331f68ca410efc874f0bdfb1cd348f92" dependencies = [ - "fastrand 2.0.1", + "fastrand", "unicode-normalization", ] @@ -1643,12 +1613,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - [[package]] name = "hex" version = "0.4.3" @@ -1719,26 +1683,6 @@ dependencies = [ "serde", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "is-docker" version = "0.2.0" @@ -1857,12 +1801,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - [[package]] name = "linux-raw-sys" version = "0.4.12" @@ -1937,15 +1875,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.0" @@ -2006,7 +1935,6 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.7.1", ] [[package]] @@ -2019,6 +1947,7 @@ dependencies = [ "cfg-if", "cfg_aliases", "libc", + "memoffset", ] [[package]] @@ -2043,9 +1972,9 @@ dependencies = [ [[package]] name = "notify-rust" -version = "4.10.0" +version = "4.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827c5edfa80235ded4ab3fe8e9dc619b4f866ef16fe9b1c6b8a7f8692c0f2226" +checksum = "5312f837191c317644f313f7b2b39f9cb1496570c74f7c17152dd3961219551f" dependencies = [ "log", "mac-notification-sys", @@ -2349,7 +2278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand", "futures-io", ] @@ -2359,22 +2288,6 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - [[package]] name = "polling" version = "3.3.1" @@ -2384,7 +2297,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite", - "rustix 0.38.31", + "rustix", "tracing", "windows-sys 0.52.0", ] @@ -2430,12 +2343,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "toml_edit 0.21.1", ] [[package]] @@ -2601,20 +2513,6 @@ dependencies = [ "trim-in-place", ] -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno 0.3.8", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - [[package]] name = "rustix" version = "0.38.31" @@ -2624,7 +2522,7 @@ dependencies = [ "bitflags 2.4.1", "errno 0.3.8", "libc", - "linux-raw-sys 0.4.12", + "linux-raw-sys", "windows-sys 0.52.0", ] @@ -2743,9 +2641,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", @@ -2889,16 +2787,6 @@ version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "starship" version = "1.18.2" @@ -2951,7 +2839,7 @@ dependencies = [ "urlencoding", "versions", "which", - "windows 0.54.0", + "windows", "winres", "yaml-rust2", ] @@ -3023,12 +2911,13 @@ dependencies = [ [[package]] name = "tauri-winrt-notification" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006851c9ccefa3c38a7646b8cec804bb429def3da10497bfa977179869c3e8e2" +checksum = "2d59cba96cdbf291d74490ac477c66885ebdc87e28faca532ec1e00f4f3bd578" dependencies = [ "quick-xml 0.30.0", - "windows 0.51.1", + "windows", + "windows-version", ] [[package]] @@ -3038,8 +2927,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "rustix 0.38.31", + "fastrand", + "rustix", "windows-sys 0.52.0", ] @@ -3049,7 +2938,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.31", + "rustix", "windows-sys 0.48.0", ] @@ -3221,9 +3110,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap 2.2.6", "toml_datetime", @@ -3298,7 +3187,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.0", + "memoffset", "tempfile", "winapi", ] @@ -3430,12 +3319,6 @@ dependencies = [ "utf8parse", ] -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - [[package]] name = "walkdir" version = "2.4.0" @@ -3514,7 +3397,7 @@ checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" dependencies = [ "either", "home", - "rustix 0.38.31", + "rustix", "winsafe", ] @@ -3549,16 +3432,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" -dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", -] - [[package]] name = "windows" version = "0.54.0" @@ -3645,6 +3518,15 @@ dependencies = [ "windows_x86_64_msvc 0.52.3", ] +[[package]] +name = "windows-version" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" +dependencies = [ + "windows-targets 0.52.3", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -3764,11 +3646,11 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] name = "xdg-home" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" dependencies = [ - "nix 0.26.4", + "libc", "winapi", ] @@ -3785,30 +3667,28 @@ dependencies = [ [[package]] name = "zbus" -version = "3.14.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +checksum = "c9ff46f2a25abd690ed072054733e0bc3157e3d4c45f41bd183dce09c2ff8ab9" dependencies = [ "async-broadcast", "async-executor", "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock 3.3.0", "async-process", "async-recursion", "async-task", "async-trait", "blocking", - "byteorder", "derivative", "enumflags2", - "event-listener 2.5.3", + "event-listener 5.2.0", "futures-core", "futures-sink", "futures-util", "hex", - "nix 0.26.4", - "once_cell", + "nix 0.28.0", "ordered-stream", "rand", "serde", @@ -3817,7 +3697,7 @@ dependencies = [ "static_assertions", "tracing", "uds_windows", - "winapi", + "windows-sys 0.52.0", "xdg-home", "zbus_macros", "zbus_names", @@ -3826,9 +3706,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.14.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +checksum = "4e0e3852c93dcdb49c9462afe67a2a468f7bd464150d866e861eaf06208633e0" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3840,9 +3720,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "2.6.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", @@ -3871,13 +3751,12 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.15.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +checksum = "2c1b3ca6db667bfada0f1ebfc94b2b1759ba25472ee5373d4551bb892616389a" dependencies = [ - "byteorder", + "endi", "enumflags2", - "libc", "serde", "static_assertions", "zvariant_derive", @@ -3885,9 +3764,9 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "3.15.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +checksum = "b7a4b236063316163b69039f77ce3117accb41a09567fd24c168e43491e521bc" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3898,9 +3777,9 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 96a70323..eba61409 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ indexmap = { version = "2.2.6", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 -notify-rust = { version = "4.10.0", optional = true } +notify-rust = { version = "4.11.0", optional = true } nu-ansi-term = "0.50.0" once_cell = "1.19.0" open = "5.1.2" From 34a8f7e62845fd66df3f6f9003cb850f2b0d9bc5 Mon Sep 17 00:00:00 2001 From: boreinhardt <59684097+boreinhardt@users.noreply.github.com> Date: Fri, 5 Apr 2024 23:56:15 +0200 Subject: [PATCH 242/651] feat(gleam): Add Gleam module (#5886) Co-authored-by: benno.reinhardt --- .github/config-schema.json | 72 +++++++++++ docs/config/README.md | 40 ++++++ docs/public/presets/toml/no-empty-icons.toml | 3 + .../presets/toml/no-runtime-versions.toml | 3 + .../presets/toml/plain-text-symbols.toml | 3 + src/configs/gleam.rs | 34 +++++ src/configs/mod.rs | 3 + src/configs/starship_root.rs | 1 + src/module.rs | 1 + src/modules/gleam.rs | 122 ++++++++++++++++++ src/modules/mod.rs | 3 + src/utils.rs | 4 + 12 files changed, 289 insertions(+) create mode 100644 src/configs/gleam.rs create mode 100644 src/modules/gleam.rs diff --git a/.github/config-schema.json b/.github/config-schema.json index c3a6f70c..b36ad633 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -667,6 +667,27 @@ } ] }, + "gleam": { + "default": { + "detect_extensions": [ + "gleam" + ], + "detect_files": [ + "gleam.toml" + ], + "detect_folders": [], + "disabled": false, + "format": "via [$symbol($version )]($style)", + "style": "bold #FFAFF3", + "symbol": "⭐ ", + "version_format": "v${raw}" + }, + "allOf": [ + { + "$ref": "#/definitions/GleamConfig" + } + ] + }, "golang": { "default": { "detect_extensions": [ @@ -3534,6 +3555,57 @@ }, "additionalProperties": false }, + "GleamConfig": { + "type": "object", + "properties": { + "format": { + "default": "via [$symbol($version )]($style)", + "type": "string" + }, + "version_format": { + "default": "v${raw}", + "type": "string" + }, + "symbol": { + "default": "⭐ ", + "type": "string" + }, + "style": { + "default": "bold #FFAFF3", + "type": "string" + }, + "disabled": { + "default": false, + "type": "boolean" + }, + "detect_extensions": { + "default": [ + "gleam" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_files": { + "default": [ + "gleam.toml" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_folders": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "GoConfig": { "type": "object", "properties": { diff --git a/docs/config/README.md b/docs/config/README.md index 0c08d076..f889ca8f 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -295,6 +295,7 @@ $elixir\ $elm\ $erlang\ $fennel\ +$gleam\ $golang\ $guix_shell\ $haskell\ @@ -2058,6 +2059,45 @@ Use Windows Starship executable on Windows paths in WSL windows_starship = '/mnt/c/Users/username/scoop/apps/starship/current/starship.exe' ``` +## Gleam + +The `gleam` module shows the currently installed version of [Gleam](https://gleam.run/). +By default the module will be shown if any of the following conditions are met: + +- The current directory contains a `gleam.toml` file +- The current directory contains a file with the `.gleam` extension + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'⭐ '` | A format string representing the symbol of Go. | +| `detect_extensions` | `['gleam']` | Which extensions should trigger this module. | +| `detect_files` | `['gleam.toml']` | Which filenames should trigger this module. | +| `style` | `'bold #FFAFF3'` | The style for the module. | +| `disabled` | `false` | Disables the `gleam` module. | + +### Variables + +| Variable | Example | Description | +| -------- | -------- | ------------------------------------ | +| version | `v1.0.0` | The version of `gleam` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[gleam] +format = 'via [⭐ $version](bold red) ' +``` + ## Go The `golang` module shows the currently installed version of [Go](https://golang.org/). diff --git a/docs/public/presets/toml/no-empty-icons.toml b/docs/public/presets/toml/no-empty-icons.toml index 174c9dcb..ad97b703 100644 --- a/docs/public/presets/toml/no-empty-icons.toml +++ b/docs/public/presets/toml/no-empty-icons.toml @@ -40,6 +40,9 @@ format = '(via [$symbol($version )]($style))' [fennel] format = '(via [$symbol($version )]($style))' +[gleam] +format = '(via [$symbol($version )]($style))' + [golang] format = '(via [$symbol($version )]($style))' diff --git a/docs/public/presets/toml/no-runtime-versions.toml b/docs/public/presets/toml/no-runtime-versions.toml index df3a1ff4..529fe8da 100644 --- a/docs/public/presets/toml/no-runtime-versions.toml +++ b/docs/public/presets/toml/no-runtime-versions.toml @@ -37,6 +37,9 @@ format = 'via [$symbol]($style)' [fennel] format = 'via [$symbol]($style)' +[gleam] +format = 'via [$symbol]($style)' + [golang] format = 'via [$symbol]($style)' diff --git a/docs/public/presets/toml/plain-text-symbols.toml b/docs/public/presets/toml/plain-text-symbols.toml index 244dc3a7..0c200eec 100644 --- a/docs/public/presets/toml/plain-text-symbols.toml +++ b/docs/public/presets/toml/plain-text-symbols.toml @@ -73,6 +73,9 @@ symbol = "gcp " [git_branch] symbol = "git " +[gleam] +symbol = "gleam " + [golang] symbol = "go " diff --git a/src/configs/gleam.rs b/src/configs/gleam.rs new file mode 100644 index 00000000..8d70e985 --- /dev/null +++ b/src/configs/gleam.rs @@ -0,0 +1,34 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Deserialize, Serialize)] +#[cfg_attr( + feature = "config-schema", + derive(schemars::JsonSchema), + schemars(deny_unknown_fields) +)] +#[serde(default)] +pub struct GleamConfig<'a> { + pub format: &'a str, + pub version_format: &'a str, + pub symbol: &'a str, + pub style: &'a str, + pub disabled: bool, + pub detect_extensions: Vec<&'a str>, + pub detect_files: Vec<&'a str>, + pub detect_folders: Vec<&'a str>, +} + +impl<'a> Default for GleamConfig<'a> { + fn default() -> Self { + GleamConfig { + format: "via [$symbol($version )]($style)", + version_format: "v${raw}", + symbol: "⭐ ", + style: "bold #FFAFF3", + disabled: false, + detect_extensions: vec!["gleam"], + detect_files: vec!["gleam.toml"], + detect_folders: vec![], + } + } +} diff --git a/src/configs/mod.rs b/src/configs/mod.rs index 591b350d..a4d7502a 100644 --- a/src/configs/mod.rs +++ b/src/configs/mod.rs @@ -36,6 +36,7 @@ pub mod git_commit; pub mod git_metrics; pub mod git_state; pub mod git_status; +pub mod gleam; pub mod go; pub mod gradle; pub mod guix_shell; @@ -179,6 +180,8 @@ pub struct FullConfig<'a> { #[serde(borrow)] git_status: git_status::GitStatusConfig<'a>, #[serde(borrow)] + gleam: gleam::GleamConfig<'a>, + #[serde(borrow)] golang: go::GoConfig<'a>, #[serde(borrow)] gradle: gradle::GradleConfig<'a>, diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index 7612a550..d809737f 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -64,6 +64,7 @@ pub const PROMPT_ORDER: &[&str] = &[ "elm", "erlang", "fennel", + "gleam", "golang", "gradle", "haskell", diff --git a/src/module.rs b/src/module.rs index 3a8533f3..4d310878 100644 --- a/src/module.rs +++ b/src/module.rs @@ -43,6 +43,7 @@ pub const ALL_MODULES: &[&str] = &[ "git_metrics", "git_state", "git_status", + "gleam", "golang", "gradle", "guix_shell", diff --git a/src/modules/gleam.rs b/src/modules/gleam.rs new file mode 100644 index 00000000..fa9a1e9b --- /dev/null +++ b/src/modules/gleam.rs @@ -0,0 +1,122 @@ +use super::{Context, Module, ModuleConfig}; + +use crate::configs::gleam::GleamConfig; +use crate::formatter::StringFormatter; +use crate::formatter::VersionFormatter; + +/// Creates a module with the current Gleam version +pub fn module<'a>(context: &'a Context) -> Option> { + let mut module = context.new_module("gleam"); + let config = GleamConfig::try_load(module.config); + + let is_gleam_project = context + .try_begin_scan()? + .set_files(&config.detect_files) + .set_extensions(&config.detect_extensions) + .set_folders(&config.detect_folders) + .is_match(); + + if !is_gleam_project { + return None; + } + + let parsed = StringFormatter::new(config.format).and_then(|formatter| { + formatter + .map_meta(|var, _| match var { + "symbol" => Some(config.symbol), + _ => None, + }) + .map_style(|variable| match variable { + "style" => Some(Ok(config.style)), + _ => None, + }) + .map(|variable| match variable { + "version" => { + let gleam_version = + parse_gleam_version(&context.exec_cmd("gleam", &["--version"])?.stdout)?; + VersionFormatter::format_module_version( + module.get_name(), + &gleam_version, + config.version_format, + ) + .map(Ok) + } + _ => None, + }) + .parse(None, Some(context)) + }); + + module.set_segments(match parsed { + Ok(segments) => segments, + Err(error) => { + log::warn!("Error in module `gleam`:\n{}", error); + return None; + } + }); + + Some(module) +} + +fn parse_gleam_version(version: &str) -> Option { + let version = version.split_whitespace().last()?; + Some(version.to_string()) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::test::ModuleRenderer; + use nu_ansi_term::Color; + use std::fs::File; + use std::io; + + #[test] + fn test_folder_without_gleam_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + + let actual = ModuleRenderer::new("gleam").path(dir.path()).collect(); + + let expected = None; + + assert_eq!(actual, expected); + dir.close() + } + + #[test] + fn test_folder_with_gleam_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("hello.gleam"))?.sync_all()?; + + let actual = ModuleRenderer::new("gleam").path(dir.path()).collect(); + + let expected = Some(format!( + "via {}", + Color::Rgb(255, 175, 243).bold().paint("⭐ v1.0.0 ") + )); + + assert_eq!(actual, expected); + dir.close() + } + + #[test] + fn test_folder_with_gleam_toml() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("gleam.toml"))?.sync_all()?; + + let actual = ModuleRenderer::new("gleam").path(dir.path()).collect(); + + let expected = Some(format!( + "via {}", + Color::Rgb(255, 175, 243).bold().paint("⭐ v1.0.0 ") + )); + + assert_eq!(actual, expected); + dir.close() + } + + #[test] + fn test_parse_gleam_version() { + let version = "gleam 1.0.0"; + assert_eq!(parse_gleam_version(version), Some("1.0.0".to_string())); + } +} diff --git a/src/modules/mod.rs b/src/modules/mod.rs index a219cd0d..8bbc5f5b 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -33,6 +33,7 @@ mod git_commit; mod git_metrics; mod git_state; mod git_status; +mod gleam; mod golang; mod gradle; mod guix_shell; @@ -141,6 +142,7 @@ pub fn handle<'a>(module: &str, context: &'a Context) -> Option> { "git_metrics" => git_metrics::module(context), "git_state" => git_state::module(context), "git_status" => git_status::module(context), + "gleam" => gleam::module(context), "golang" => golang::module(context), "gradle" => gradle::module(context), "guix_shell" => guix_shell::module(context), @@ -260,6 +262,7 @@ pub fn description(module: &str) -> &'static str { "git_metrics" => "The currently added/deleted lines in your repo", "git_state" => "The current git operation, and it's progress", "git_status" => "Symbol representing the state of the repo", + "gleam" => "The currently installed version of Gleam", "golang" => "The currently installed version of Golang", "gradle" => "The currently installed version of Gradle", "guix_shell" => "The guix-shell environment", diff --git a/src/utils.rs b/src/utils.rs index aa1819b5..9780a2ad 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -267,6 +267,10 @@ Elixir 1.10 (compiled with Erlang/OTP 22)\n", stdout: String::default(), stderr: String::default(), }), + "gleam --version" => Some(CommandOutput { + stdout: String::from("gleam 1.0.0\n"), + stderr: String::default(), + }), "go version" => Some(CommandOutput { stdout: String::from("go version go1.12.1 linux/amd64\n"), stderr: String::default(), From 335c514e9ee5fa5bc8a8294b4804ddf198504b97 Mon Sep 17 00:00:00 2001 From: "[Error_27]" Date: Fri, 5 Apr 2024 17:56:49 -0400 Subject: [PATCH 243/651] feat(odin): Add Odin Lang module (#5873) * Add Odin lang module * add utils string and remove commit number from output * switch to new symbol because ZWJ support is rare * add config docs * add option to show the commit number * fix lack of trimming * fix formatting to comply with checks * Add trailing newline to comply with cargo fmt * Add new Odin test and add newline in cmd output --- .github/config-schema.json | 68 +++++++++++++++++++++ docs/config/README.md | 37 ++++++++++++ src/configs/mod.rs | 3 + src/configs/odin.rs | 34 +++++++++++ src/configs/starship_root.rs | 1 + src/module.rs | 1 + src/modules/mod.rs | 3 + src/modules/odin.rs | 112 +++++++++++++++++++++++++++++++++++ src/utils.rs | 4 ++ 9 files changed, 263 insertions(+) create mode 100644 src/configs/odin.rs create mode 100644 src/modules/odin.rs diff --git a/.github/config-schema.json b/.github/config-schema.json index b36ad633..bb5fdd85 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1148,6 +1148,25 @@ } ] }, + "odin": { + "default": { + "detect_extensions": [ + "odin" + ], + "detect_files": [], + "detect_folders": [], + "disabled": false, + "format": "via [$symbol($version )]($style)", + "show_commit": false, + "style": "bold bright-blue", + "symbol": "Ø " + }, + "allOf": [ + { + "$ref": "#/definitions/OdinConfig" + } + ] + }, "opa": { "default": { "detect_extensions": [ @@ -4664,6 +4683,55 @@ }, "additionalProperties": false }, + "OdinConfig": { + "type": "object", + "properties": { + "format": { + "default": "via [$symbol($version )]($style)", + "type": "string" + }, + "show_commit": { + "default": false, + "type": "boolean" + }, + "symbol": { + "default": "Ø ", + "type": "string" + }, + "style": { + "default": "bold bright-blue", + "type": "string" + }, + "disabled": { + "default": false, + "type": "boolean" + }, + "detect_extensions": { + "default": [ + "odin" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_files": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "detect_folders": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "OpaConfig": { "type": "object", "properties": { diff --git a/docs/config/README.md b/docs/config/README.md index f889ca8f..794190b7 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -3114,6 +3114,43 @@ By default the module will be shown if any of the following conditions are met: format = 'via [🐪 $version]($style) ' ``` +## Odin + +The 'odin' module shows the currently installed version of [Odin](https://odin-lang.org/). By default the module will be shown if the current directory contains a `.odin` file. + +### Options + +| Option | Default | Description | +| ------------------- | ------------------------------------ | ----------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `show_commit` | `false` | Shows the commit as part of the version. | +| `symbol` | `'Ø '` | The symbol used before displaying the version of Zig. | +| `style` | `'bold bright-blue'` | The style for the module. | +| `disabled` | `false` | Disables the `odin` module. | +| `detect_extensions` | `['odin']` | Which extensions should trigger this module. | +| `detect_files` | `[]` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | + +### Variables + +| Variable | Example | Description | +| -------- | ------------- | ------------------------------------ | +| version | `dev-2024-03` | The version of `odin` | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +*: This variable can only be used as a part of a style string + +### Example + +```toml +# ~/.config/starship.toml + +[odin] +format = 'via [󰹩 ($version )]($style)' +show_commit = true +``` + ## Open Policy Agent The `opa` module shows the currently installed version of the OPA tool. diff --git a/src/configs/mod.rs b/src/configs/mod.rs index a4d7502a..7e7aa263 100644 --- a/src/configs/mod.rs +++ b/src/configs/mod.rs @@ -59,6 +59,7 @@ pub mod nim; pub mod nix_shell; pub mod nodejs; pub mod ocaml; +pub mod odin; pub mod opa; pub mod openstack; pub mod os; @@ -225,6 +226,8 @@ pub struct FullConfig<'a> { #[serde(borrow)] ocaml: ocaml::OCamlConfig<'a>, #[serde(borrow)] + odin: odin::OdinConfig<'a>, + #[serde(borrow)] opa: opa::OpaConfig<'a>, #[serde(borrow)] openstack: openstack::OspConfig<'a>, diff --git a/src/configs/odin.rs b/src/configs/odin.rs new file mode 100644 index 00000000..4fb1d581 --- /dev/null +++ b/src/configs/odin.rs @@ -0,0 +1,34 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Deserialize, Serialize)] +#[cfg_attr( + feature = "config-schema", + derive(schemars::JsonSchema), + schemars(deny_unknown_fields) +)] +#[serde(default)] +pub struct OdinConfig<'a> { + pub format: &'a str, + pub show_commit: bool, + pub symbol: &'a str, + pub style: &'a str, + pub disabled: bool, + pub detect_extensions: Vec<&'a str>, + pub detect_files: Vec<&'a str>, + pub detect_folders: Vec<&'a str>, +} + +impl<'a> Default for OdinConfig<'a> { + fn default() -> Self { + OdinConfig { + format: "via [$symbol($version )]($style)", + show_commit: false, + symbol: "Ø ", + style: "bold bright-blue", + disabled: false, + detect_extensions: vec!["odin"], + detect_files: vec![], + detect_folders: vec![], + } + } +} diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index d809737f..f1cc181c 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -77,6 +77,7 @@ pub const PROMPT_ORDER: &[&str] = &[ "nim", "nodejs", "ocaml", + "odin", "opa", "perl", "php", diff --git a/src/module.rs b/src/module.rs index 4d310878..abcb25f7 100644 --- a/src/module.rs +++ b/src/module.rs @@ -66,6 +66,7 @@ pub const ALL_MODULES: &[&str] = &[ "nix_shell", "nodejs", "ocaml", + "odin", "opa", "openstack", "os", diff --git a/src/modules/mod.rs b/src/modules/mod.rs index 8bbc5f5b..e842b494 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -56,6 +56,7 @@ mod nim; mod nix_shell; mod nodejs; mod ocaml; +mod odin; mod opa; mod openstack; mod os; @@ -165,6 +166,7 @@ pub fn handle<'a>(module: &str, context: &'a Context) -> Option> { "nix_shell" => nix_shell::module(context), "nodejs" => nodejs::module(context), "ocaml" => ocaml::module(context), + "odin" => odin::module(context), "opa" => opa::module(context), "openstack" => openstack::module(context), "os" => os::module(context), @@ -287,6 +289,7 @@ pub fn description(module: &str) -> &'static str { "nix_shell" => "The nix-shell environment", "nodejs" => "The currently installed version of NodeJS", "ocaml" => "The currently installed version of OCaml", + "odin" => "The currently installed version of Odin", "opa" => "The currently installed version of Open Platform Agent", "openstack" => "The current OpenStack cloud and project", "os" => "The current operating system", diff --git a/src/modules/odin.rs b/src/modules/odin.rs new file mode 100644 index 00000000..8a80bf9f --- /dev/null +++ b/src/modules/odin.rs @@ -0,0 +1,112 @@ +use super::{Context, Module, ModuleConfig}; + +use crate::configs::odin::OdinConfig; +use crate::formatter::StringFormatter; + +/// Creates a module with the current Odin version +pub fn module<'a>(context: &'a Context) -> Option> { + let mut module = context.new_module("odin"); + let config = OdinConfig::try_load(module.config); + + let is_odin_project = context + .try_begin_scan()? + .set_files(&config.detect_files) + .set_extensions(&config.detect_extensions) + .set_folders(&config.detect_folders) + .is_match(); + + if !is_odin_project { + return None; + } + + let parsed = StringFormatter::new(config.format).and_then(|formatter| { + formatter + .map_meta(|variable, _| match variable { + "symbol" => Some(config.symbol), + _ => None, + }) + .map_style(|variable| match variable { + "style" => Some(Ok(config.style)), + _ => None, + }) + .map(|variable| match variable { + "version" => { + let odin_version = context.exec_cmd("odin", &["version"])?.stdout; + let trimmed_version = odin_version.split(' ').last()?.trim().to_string(); + + if config.show_commit { + return Some(Ok(trimmed_version)); + } + + let no_commit = trimmed_version.split(':').next()?.trim().to_string(); + Some(Ok(no_commit)) + } + _ => None, + }) + .parse(None, Some(context)) + }); + + module.set_segments(match parsed { + Ok(segments) => segments, + Err(error) => { + log::warn!("Error in module `odin`:\n{}", error); + return None; + } + }); + + Some(module) +} + +#[cfg(test)] +mod tests { + use crate::test::ModuleRenderer; + use crate::utils::CommandOutput; + use nu_ansi_term::Color; + use std::fs::File; + use std::io; + + #[test] + fn folder_without_odin() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("odin.txt"))?.sync_all()?; + let actual = ModuleRenderer::new("odin").path(dir.path()).collect(); + let expected = None; + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_odin_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("main.odin"))?.sync_all()?; + let actual = ModuleRenderer::new("odin").path(dir.path()).collect(); + let expected = Some(format!( + "via {}", + Color::LightBlue.bold().paint("Ø dev-2024-03 ") + )); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_odin_file_without_commit() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("main.odin"))?.sync_all()?; + let actual = ModuleRenderer::new("odin") + .cmd( + "odin version", + Some(CommandOutput { + stdout: String::from("odin version dev-2024-03\n"), + stderr: String::default(), + }), + ) + .path(dir.path()) + .collect(); + let expected = Some(format!( + "via {}", + Color::LightBlue.bold().paint("Ø dev-2024-03 ") + )); + assert_eq!(expected, actual); + dir.close() + } +} diff --git a/src/utils.rs b/src/utils.rs index 9780a2ad..eafeca54 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -330,6 +330,10 @@ active boot switches: -d:release\n", stdout: String::from("4.10.0\n"), stderr: String::default(), }), + "odin version" => Some(CommandOutput { + stdout: String::from("odin version dev-2024-03:fc587c507\n"), + stderr: String::default(), + }), "opa version" => Some(CommandOutput { stdout: String::from("Version: 0.44.0 Build Commit: e8d488f From 9c1eaddae154daed9e1d00faac414586f7920013 Mon Sep 17 00:00:00 2001 From: Alper Cugun Date: Fri, 5 Apr 2024 23:57:13 +0200 Subject: [PATCH 244/651] feat(username): add aliases option (#5855) * Create place to put it in the config * Initial functional version * Fix grammar * Add option documentation to README * Add test for two aliases and emoji translation * Remove println * Rewrite match as iflet * Improve converting the reference * Format file * Try to restore autoformat of markdown * Replace toml:Map with concrete IndexMap * Update schema * Add option that got lost --- .github/config-schema.json | 8 ++++++++ docs/config/README.md | 2 ++ src/configs/username.rs | 3 +++ src/modules/username.rs | 40 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+) diff --git a/.github/config-schema.json b/.github/config-schema.json index bb5fdd85..9f30f307 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1784,6 +1784,7 @@ }, "username": { "default": { + "aliases": {}, "detect_env_vars": [], "disabled": false, "format": "[$user]($style) in ", @@ -6129,6 +6130,13 @@ "disabled": { "default": false, "type": "boolean" + }, + "aliases": { + "default": {}, + "type": "object", + "additionalProperties": { + "type": "string" + } } }, "additionalProperties": false diff --git a/docs/config/README.md b/docs/config/README.md index 794190b7..dcec8381 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -4505,6 +4505,7 @@ these variables, one workaround is to set one of them with a dummy value. | `format` | `'[$user]($style) in '` | The format for the module. | | `show_always` | `false` | Always shows the `username` module. | | `disabled` | `false` | Disables the `username` module. | +| `aliases` | `{}` | Translate system usernames to something else | ### Variables @@ -4526,6 +4527,7 @@ style_root = 'black bold' format = 'user: [$user]($style) ' disabled = false show_always = true +aliases = { "corpuser034g" = "matchai" } ``` #### Hide the hostname in remote tmux sessions diff --git a/src/configs/username.rs b/src/configs/username.rs index 807dad51..1a333c1e 100644 --- a/src/configs/username.rs +++ b/src/configs/username.rs @@ -1,3 +1,4 @@ +use indexmap::IndexMap; use serde::{Deserialize, Serialize}; #[derive(Clone, Deserialize, Serialize)] @@ -14,6 +15,7 @@ pub struct UsernameConfig<'a> { pub style_user: &'a str, pub show_always: bool, pub disabled: bool, + pub aliases: IndexMap, } impl<'a> Default for UsernameConfig<'a> { @@ -25,6 +27,7 @@ impl<'a> Default for UsernameConfig<'a> { style_user: "yellow bold", show_always: false, disabled: false, + aliases: IndexMap::new(), } } } diff --git a/src/modules/username.rs b/src/modules/username.rs index 038bbd75..714eec07 100644 --- a/src/modules/username.rs +++ b/src/modules/username.rs @@ -40,6 +40,10 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; // [A] } + if let Some(&alias) = config.aliases.get(&username) { + username = alias.to_string(); + } + let parsed = StringFormatter::new(config.format).and_then(|formatter| { formatter .map_style(|variable| match variable { @@ -323,4 +327,40 @@ mod tests { assert_eq!(expected, actual.as_deref()); } + + #[test] + fn test_alias() { + let actual = ModuleRenderer::new("username") + .env(super::USERNAME_ENV_VAR, "astronaut") + .config(toml::toml! { + [username] + show_always = true + aliases = { "astronaut" = "skywalker" } + + style_root = "" + style_user = "" + }) + .collect(); + let expected = Some("skywalker in "); + + assert_eq!(expected, actual.as_deref()); + } + + #[test] + fn test_alias_emoji() { + let actual = ModuleRenderer::new("username") + .env(super::USERNAME_ENV_VAR, "kaas") + .config(toml::toml! { + [username] + show_always = true + aliases = { "a" = "b", "kaas" = "🧀" } + + style_root = "" + style_user = "" + }) + .collect(); + let expected = Some("🧀 in "); + + assert_eq!(expected, actual.as_deref()); + } } From 1a72757f019f59362c34ec81bf2811eb3d1d70da Mon Sep 17 00:00:00 2001 From: Daniel Watkins Date: Sat, 6 Apr 2024 09:28:26 -0400 Subject: [PATCH 245/651] fix: combine ANSI color codes before wrapping them (#5762) * combine ANSI color codes before wrapping them The existing code wraps each individual module's output for `context.shell`, concatenates all that output together and passes it to `AnsiStrings` to merge ANSI color codes. However, the wrapping obscures ANSI color codes, meaning that no merging is possible. This commit changes the shell-specific wrapping to happen right before output, once all modules' output has been concatenated together. This results in ANSI color codes being correctly merged, as well as reducing the number of calls to `wrap_colorseq_for_shell` to one. With a minimal `starship.toml`: ``` format = """$directory""" [directory] format = '[a]($style)[b]($style)' ``` The current code produces[0]: ``` \n%{\x1b[31m%}a%{\x1b[0m%}%{\x1b[31m%}b%{\x1b[0m% ``` And this commit's code: ``` \n%{\x1b[31m%}ab%{\x1b[0m%} ``` You can see that the current code emits an additional reset and repeated color code between "a" and "b" compared to the new code. [0] Produced in a Python shell with: ``` subprocess.check_output( "./target/debug/starship prompt", shell=True, env={"STARSHIP_CONFIG": "./starship.toml", "STARSHIP_SHELL": "zsh"} ) ``` * utils: return early from wrap_seq_for_shell unless wrapping required * refactor(utils): simplify wrap_seq_for_shell This commit modifies wrap_seq_for_shell to (a) return early for shells with no wrapping required, and (b) determine the wrapping characters once at the start of the function (rather than inline in the map function for every character). --- src/module.rs | 24 +++--------------------- src/print.rs | 9 +++++++-- src/utils.rs | 27 +++++++++------------------ 3 files changed, 19 insertions(+), 41 deletions(-) diff --git a/src/module.rs b/src/module.rs index abcb25f7..c067aa3b 100644 --- a/src/module.rs +++ b/src/module.rs @@ -1,7 +1,5 @@ -use crate::context::Shell; use crate::segment; use crate::segment::{FillSegment, Segment}; -use crate::utils::wrap_colorseq_for_shell; use nu_ansi_term::{AnsiString, AnsiStrings}; use std::fmt; use std::time::Duration; @@ -164,22 +162,16 @@ impl<'a> Module<'a> { /// Returns a vector of colored `AnsiString` elements to be later used with /// `AnsiStrings()` to optimize ANSI codes pub fn ansi_strings(&self) -> Vec { - self.ansi_strings_for_shell(Shell::Unknown, None) + self.ansi_strings_for_width(None) } - pub fn ansi_strings_for_shell(&self, shell: Shell, width: Option) -> Vec { + pub fn ansi_strings_for_width(&self, width: Option) -> Vec { let mut iter = self.segments.iter().peekable(); let mut ansi_strings: Vec = Vec::new(); while iter.peek().is_some() { ansi_strings.extend(ansi_line(&mut iter, width)); } - - match shell { - Shell::Bash => ansi_strings_modified(ansi_strings, shell), - Shell::Zsh => ansi_strings_modified(ansi_strings, shell), - Shell::Tcsh => ansi_strings_modified(ansi_strings, shell), - _ => ansi_strings, - } + ansi_strings } } @@ -190,16 +182,6 @@ impl<'a> fmt::Display for Module<'a> { } } -fn ansi_strings_modified(ansi_strings: Vec, shell: Shell) -> Vec { - ansi_strings - .into_iter() - .map(|ansi| { - let wrapped = wrap_colorseq_for_shell(ansi.to_string(), shell); - AnsiString::from(wrapped) - }) - .collect::>() -} - fn ansi_line<'a, I>(segments: &mut I, term_width: Option) -> Vec> where I: Iterator, diff --git a/src/print.rs b/src/print.rs index 9ef18f32..a39a961f 100644 --- a/src/print.rs +++ b/src/print.rs @@ -18,6 +18,7 @@ use crate::module::ALL_MODULES; use crate::modules; use crate::segment::Segment; use crate::shadow; +use crate::utils::wrap_colorseq_for_shell; pub struct Grapheme<'a>(pub &'a str); @@ -115,12 +116,16 @@ pub fn get_prompt(context: Context) -> String { .expect("Unexpected error returned in root format variables"), ); - let module_strings = root_module.ansi_strings_for_shell(context.shell, Some(context.width)); + let module_strings = root_module.ansi_strings_for_width(Some(context.width)); if config.add_newline && context.target != Target::Continuation { // continuation prompts normally do not include newlines, but they can writeln!(buf).unwrap(); } - write!(buf, "{}", AnsiStrings(&module_strings)).unwrap(); + // AnsiStrings strips redundant ANSI color sequences, so apply it before modifying the ANSI + // color sequences for this specific shell + let shell_wrapped_output = + wrap_colorseq_for_shell(AnsiStrings(&module_strings).to_string(), context.shell); + write!(buf, "{}", shell_wrapped_output).unwrap(); if context.target == Target::Right { // right prompts generally do not allow newlines diff --git a/src/utils.rs b/src/utils.rs index eafeca54..c2c54b62 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -510,12 +510,13 @@ pub fn wrap_seq_for_shell( escape_begin: char, escape_end: char, ) -> String { - const BASH_BEG: &str = "\u{5c}\u{5b}"; // \[ - const BASH_END: &str = "\u{5c}\u{5d}"; // \] - const ZSH_BEG: &str = "\u{25}\u{7b}"; // %{ - const ZSH_END: &str = "\u{25}\u{7d}"; // %} - const TCSH_BEG: &str = "\u{25}\u{7b}"; // %{ - const TCSH_END: &str = "\u{25}\u{7d}"; // %} + let (beg, end) = match shell { + // \[ and \] + Shell::Bash => ("\u{5c}\u{5b}", "\u{5c}\u{5d}"), + // %{ and %} + Shell::Tcsh | Shell::Zsh => ("\u{25}\u{7b}", "\u{25}\u{7d}"), + _ => return ansi, + }; // ANSI escape codes cannot be nested, so we can keep track of whether we're // in an escape or not with a single boolean variable @@ -525,20 +526,10 @@ pub fn wrap_seq_for_shell( .map(|x| { if x == escape_begin && !escaped { escaped = true; - match shell { - Shell::Bash => format!("{BASH_BEG}{escape_begin}"), - Shell::Zsh => format!("{ZSH_BEG}{escape_begin}"), - Shell::Tcsh => format!("{TCSH_BEG}{escape_begin}"), - _ => x.to_string(), - } + format!("{beg}{escape_begin}") } else if x == escape_end && escaped { escaped = false; - match shell { - Shell::Bash => format!("{escape_end}{BASH_END}"), - Shell::Zsh => format!("{escape_end}{ZSH_END}"), - Shell::Tcsh => format!("{escape_end}{TCSH_END}"), - _ => x.to_string(), - } + format!("{escape_end}{end}") } else { x.to_string() } From 3e3f18ef277c9bb3db9f60c964f280c7d981102c Mon Sep 17 00:00:00 2001 From: cgzones Date: Sat, 6 Apr 2024 15:29:24 +0200 Subject: [PATCH 246/651] feat(container): show name if available (#5195) Podman exports the name of the container in /run/.containerenv, which is especially useful for distrobox environments. --- src/modules/container.rs | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/modules/container.rs b/src/modules/container.rs index e4e447f3..d592eaa5 100644 --- a/src/modules/container.rs +++ b/src/modules/container.rs @@ -35,6 +35,10 @@ pub fn module<'a>(context: &'a Context) -> Option> { .map(|s| { s.lines() .find_map(|l| { + if let Some(name_val) = l.strip_prefix("name=\"") { + return name_val.strip_suffix('"').map(|n| n.to_string()); + } + l.starts_with("image=\"").then(|| { let r = l.split_at(7).1; let name = r.rfind('/').map(|n| r.split_at(n + 1).1); @@ -127,7 +131,10 @@ mod tests { assert_eq!(expected, actual); } - fn containerenv(name: Option<&str>) -> std::io::Result<(Option, Option)> { + fn containerenv( + image: Option<&str>, + name: Option<&str>, + ) -> std::io::Result<(Option, Option)> { let renderer = ModuleRenderer::new("container") // For a custom config .config(toml::toml! { @@ -147,10 +154,10 @@ mod tests { fs::create_dir_all(containerenv.parent().unwrap())?; - let contents = match name { - Some(name) => format!("image=\"{name}\"\n"), - None => String::new(), - }; + let contents = name.map(|n| format!("name=\"{n}\"\n")).unwrap_or_default() + + &image + .map(|i| format!("image=\"{i}\"\n")) + .unwrap_or_default(); utils::write_file(&containerenv, contents)?; // The output of the module @@ -164,7 +171,7 @@ mod tests { Color::Red .bold() .dimmed() - .paint(format!("⬢ [{}]", name.unwrap_or("podman"))) + .paint(format!("⬢ [{}]", name.unwrap_or(image.unwrap_or("podman")))) )); Ok((actual, expected)) @@ -173,7 +180,7 @@ mod tests { #[test] #[cfg(target_os = "linux")] fn test_containerenv() -> std::io::Result<()> { - let (actual, expected) = containerenv(None)?; + let (actual, expected) = containerenv(None, None)?; // Assert that the actual and expected values are the same assert_eq!(actual, expected); @@ -184,7 +191,18 @@ mod tests { #[test] #[cfg(target_os = "linux")] fn test_containerenv_fedora() -> std::io::Result<()> { - let (actual, expected) = containerenv(Some("fedora-toolbox:35"))?; + let (actual, expected) = containerenv(Some("fedora-toolbox:35"), None)?; + + // Assert that the actual and expected values are the same + assert_eq!(actual, expected); + + Ok(()) + } + + #[test] + #[cfg(target_os = "linux")] + fn test_containerenv_fedora_with_name() -> std::io::Result<()> { + let (actual, expected) = containerenv(Some("fedora-toolbox:35"), Some("my-fedora"))?; // Assert that the actual and expected values are the same assert_eq!(actual, expected); @@ -271,7 +289,7 @@ mod tests { #[test] #[cfg(not(target_os = "linux"))] fn test_containerenv() -> std::io::Result<()> { - let (actual, expected) = containerenv(None)?; + let (actual, expected) = containerenv(None, None)?; // Assert that the actual and expected values are not the same assert_ne!(actual, expected); From e3b5dff3524608328de6ee3cbb390f8c640b0ce0 Mon Sep 17 00:00:00 2001 From: Thomas O'Donnell Date: Sat, 6 Apr 2024 15:30:19 +0200 Subject: [PATCH 247/651] feat(k8s): Add detect env vars option (#4488) * feat(k8s): Add detect env vars option Have added the option to trigger the k8s module based on what env vars are set, this has been done in a backwards compatible way so if nothing is changed from the defaults the module will still behave the same way as before. This is similar to what I did in #4486 for the python module and if goes well I'd like to rollout to other modules. * Update src/modules/kubernetes.rs Co-authored-by: David Knaack * Update src/modules/kubernetes.rs --------- Co-authored-by: David Knaack --- .github/config-schema.json | 8 ++++++++ docs/config/README.md | 6 ++++-- src/configs/kubernetes.rs | 2 ++ src/modules/kubernetes.rs | 23 ++++++++++++++++++++--- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 9f30f307..bee19d81 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -952,6 +952,7 @@ "default": { "context_aliases": {}, "contexts": [], + "detect_env_vars": [], "detect_extensions": [], "detect_files": [], "detect_folders": [], @@ -4256,6 +4257,13 @@ "type": "string" } }, + "detect_env_vars": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, "contexts": { "default": [], "type": "array", diff --git a/docs/config/README.md b/docs/config/README.md index dcec8381..9756484d 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -2601,8 +2601,9 @@ This module is disabled by default. To enable it, set `disabled` to `false` in your configuration file. When the module is enabled it will always be active, unless any of -`detect_extensions`, `detect_files` or `detect_folders` have been set in which -case the module will only be active in directories that match those conditions. +`detect_env_vars`, `detect_extensions`, `detect_files` or `detect_folders` have +been set in which case the module will only be active in directories that match +those conditions or one of the environmatal variable has been set. ::: @@ -2625,6 +2626,7 @@ and `user_alias` options instead. | `detect_extensions` | `[]` | Which extensions should trigger this module. | | `detect_files` | `[]` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this modules. | +| `detect_env_vars` | `[]` | Which environmental variables should trigger this module | | `contexts` | `[]` | Customized styles and symbols for specific contexts. | | `disabled` | `true` | Disables the `kubernetes` module. | diff --git a/src/configs/kubernetes.rs b/src/configs/kubernetes.rs index 00523783..312c73bd 100644 --- a/src/configs/kubernetes.rs +++ b/src/configs/kubernetes.rs @@ -18,6 +18,7 @@ pub struct KubernetesConfig<'a> { pub detect_extensions: Vec<&'a str>, pub detect_files: Vec<&'a str>, pub detect_folders: Vec<&'a str>, + pub detect_env_vars: Vec<&'a str>, pub contexts: Vec>, } @@ -33,6 +34,7 @@ impl<'a> Default for KubernetesConfig<'a> { detect_extensions: vec![], detect_files: vec![], detect_folders: vec![], + detect_env_vars: vec![], contexts: vec![], } } diff --git a/src/modules/kubernetes.rs b/src/modules/kubernetes.rs index ef6a4a1f..09a4cef4 100644 --- a/src/modules/kubernetes.rs +++ b/src/modules/kubernetes.rs @@ -107,6 +107,8 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; }; + let have_env_vars = context.detect_env_vars(&config.detect_env_vars); + // If we have some config for doing the directory scan then we use it but if we don't then we // assume we should treat it like the module is enabled to preserve backward compatibility. let have_scan_config = [ @@ -127,7 +129,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { }) }); - if !is_kube_project.unwrap_or(true) { + if !is_kube_project.unwrap_or(true) && !have_env_vars { return None; } @@ -320,7 +322,7 @@ users: [] } #[test] - fn test_none_when_no_detected_files_or_folders() -> io::Result<()> { + fn test_none_when_no_detected_files_folders_or_env_vars() -> io::Result<()> { let dir = tempfile::tempdir()?; let filename = dir.path().join("config"); @@ -352,6 +354,7 @@ users: [] detect_files = ["k8s.ext"] detect_extensions = ["k8s"] detect_folders = ["k8s_folder"] + detect_env_vars = ["k8s_env_var"] }) .collect(); @@ -361,7 +364,7 @@ users: [] } #[test] - fn test_with_detected_files_and_folder() -> io::Result<()> { + fn test_with_detected_files_folder_and_env_vars() -> io::Result<()> { let dir = tempfile::tempdir()?; let filename = dir.path().join("config"); @@ -429,6 +432,19 @@ users: [] }) .collect(); + let empty_dir = tempfile::tempdir()?; + + let actual_env_var = ModuleRenderer::new("kubernetes") + .path(empty_dir.path()) + .env("KUBECONFIG", filename.to_string_lossy().as_ref()) + .env("TEST_K8S_ENV", "foo") + .config(toml::toml! { + [kubernetes] + disabled = false + detect_env_vars = ["TEST_K8S_ENV"] + }) + .collect(); + let expected = Some(format!( "{} in ", Color::Cyan.bold().paint("☸ test_context") @@ -437,6 +453,7 @@ users: [] assert_eq!(expected, actual_file); assert_eq!(expected, actual_ext); assert_eq!(expected, actual_dir); + assert_eq!(expected, actual_env_var); dir.close() } From 91c1b4f661b6acd4b36e3431b097e5147ca23001 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 01:44:28 +0000 Subject: [PATCH 248/651] build(deps): update dependency vitepress to ^1.0.2 --- docs/package-lock.json | 8 ++++---- docs/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 3bce7c6e..9b10f0df 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.0.1" + "vitepress": "^1.0.2" } }, "node_modules/@adobe/css-tools": { @@ -1697,9 +1697,9 @@ } }, "node_modules/vitepress": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.1.tgz", - "integrity": "sha512-eNr5pOBppYUUjEhv8S0S2t9Tv95LQ6mMeHj6ivaGwfHxpov70Vduuwl/QQMDRznKDSaP0WKV7a82Pb4JVOaqEw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.2.tgz", + "integrity": "sha512-bEj9yTEdWyewJFOhEREZF+mXuAgOq27etuJZT6DZSp+J3XpQstXMJc5piSVwhZBtuj8OfA0iXy+jdP1c71KMYQ==", "dev": true, "dependencies": { "@docsearch/css": "^3.6.0", diff --git a/docs/package.json b/docs/package.json index 92380d76..7a1ccce7 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.0.1" + "vitepress": "^1.0.2" } } From ba07823cf4af329d74d5be0819f92d6232094cac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 01:44:31 +0000 Subject: [PATCH 249/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.90.0 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index fe3d49a0..fb036aa3 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.89.3/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.0/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.4/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" From f2057f9f4feab18ef1c409872ab932174f95fa9e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 08:16:45 +0000 Subject: [PATCH 250/651] build(deps): update rust crate starship-battery to 0.8.3 --- Cargo.lock | 25 +++++++------------------ Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 841efa7b..76c1e576 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1926,17 +1926,6 @@ dependencies = [ "syn 2.0.53", ] -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", -] - [[package]] name = "nix" version = "0.28.0" @@ -2805,7 +2794,7 @@ dependencies = [ "indexmap 2.2.6", "log", "mockall", - "nix 0.28.0", + "nix", "notify-rust", "nu-ansi-term", "once_cell", @@ -2846,16 +2835,16 @@ dependencies = [ [[package]] name = "starship-battery" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36335b5b5ba5328b4ad2024807423010b7f533a7e5315dfd9df0acbc9d2c550e" +checksum = "725bc1c7374f435ef65746eb1a5789cb7d02b8e997f9a3edf979bfb42da68311" dependencies = [ "cfg-if", "core-foundation", "lazycell", "libc", "mach2", - "nix 0.26.4", + "nix", "num-traits", "uom", "winapi", @@ -3257,9 +3246,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "uom" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8362194c7a9845a7a7f3562173d6e1da3f24f7132018cb78fe77a5b4474187b2" +checksum = "ffd36e5350a65d112584053ee91843955826bf9e56ec0d1351214e01f6d7cd9c" dependencies = [ "num-traits", "typenum", @@ -3688,7 +3677,7 @@ dependencies = [ "futures-sink", "futures-util", "hex", - "nix 0.28.0", + "nix", "ordered-stream", "rand", "serde", diff --git a/Cargo.toml b/Cargo.toml index eba61409..fae71f12 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,7 @@ sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 -starship-battery = { version = "0.8.2", optional = true } +starship-battery = { version = "0.8.3", optional = true } strsim = "0.11.1" systemstat = "=0.2.3" terminal_size = "0.3.0" From 2b2b9cb2b427e1feef6454bcb8ff360faaab55d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 03:56:20 +0000 Subject: [PATCH 251/651] build(deps): update crate-ci/typos action to v1.20.5 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 14dad8c4..1958fd01 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.4 + - uses: crate-ci/typos@v1.20.5 From 1f8ccb556530a803b23d2080e95079a043cb077a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 19:33:11 +0000 Subject: [PATCH 252/651] build(deps): update rust crate clap_complete to 4.5.2 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76c1e576..50630a9b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -431,9 +431,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c" +checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index fae71f12..7000ffab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.37", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.4", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.5.1" +clap_complete = "4.5.2" dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" From 61b1801fdaf38d68b43090f4b962db884d83208a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 21:08:26 +0000 Subject: [PATCH 253/651] build(deps): update crate-ci/typos action to v1.20.7 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 1958fd01..4402a002 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.5 + - uses: crate-ci/typos@v1.20.7 From bdb1ed9cd06d26fd3e78f1ef5e8f57068f41c1bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 21:57:15 +0000 Subject: [PATCH 254/651] build(deps): update crate-ci/typos action to v1.20.8 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 4402a002..bcdc93cf 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.7 + - uses: crate-ci/typos@v1.20.8 From 8970359f085ef80eb05085ba33dde623ffb41c82 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Apr 2024 13:05:34 +0000 Subject: [PATCH 255/651] build(deps): update rust crate gix to 0.62.0 --- Cargo.lock | 45 +++++++++++++++++++++++---------------------- Cargo.toml | 2 +- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50630a9b..82cd1dc4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1064,9 +1064,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.61.0" +version = "0.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e0e59a44bf00de058ee98d6ecf3c9ed8f8842c1da642258ae4120d41ded8f7" +checksum = "5631c64fb4cd48eee767bf98a3cbc5c9318ef3bb71074d4c099a2371510282b6" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1151,9 +1151,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.36.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62129c75e4b6229fe15fb9838cdc00c655e87105b651e4edd7c183fc5288b5d1" +checksum = "7580e05996e893347ad04e1eaceb92e1c0e6a3ffe517171af99bf6b6df0ca6e5" dependencies = [ "bstr", "gix-config-value", @@ -1197,9 +1197,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78e605593c2ef74980a534ade0909c7dc57cca72baa30cbb67d2dda621f99ac4" +checksum = "a5fbc24115b957346cd23fb0f47d830eb799c46c89cdcf2f5acc9bf2938c2d01" dependencies = [ "bstr", "gix-hash", @@ -1248,9 +1248,9 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634b8a743b0aae03c1a74ee0ea24e8c5136895efac64ce52b3ea106e1c6f0613" +checksum = "e2184c40e7910529677831c8b481acf788ffd92427ed21fad65b6aa637e631b8" dependencies = [ "gix-features", "gix-utils", @@ -1291,9 +1291,9 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.31.1" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549621f13d9ccf325a7de45506a3266af0d08f915181c5687abb5e8669bfd2e6" +checksum = "3383122cf18655ef4c097c0b935bba5eb56983947959aaf3b0ceb1949d4dd371" dependencies = [ "bitflags 2.4.1", "bstr", @@ -1359,9 +1359,9 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.59.0" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b55378c719693380f66d9dd21ce46721eed2981d8789fc698ec1ada6fa176e" +checksum = "e8bbb43d2fefdc4701ffdf9224844d05b136ae1b9a73c2f90710c8dd27a93503" dependencies = [ "arc-swap", "gix-date", @@ -1379,9 +1379,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.49.0" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6391aeaa030ad64aba346a9f5c69bb1c4e5c6fb4411705b03b40b49d8614ec30" +checksum = "b58bad27c7677fa6b587aab3a1aca0b6c97373bd371a0a4290677c838c9bcaf1" dependencies = [ "clru", "gix-chunk", @@ -1516,16 +1516,17 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b838b2db8f62c9447d483a4c28d251b67fee32741a82cb4d35e9eb4e9fdc5ab" +checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" [[package]] name = "gix-traverse" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95aef84bc777025403a09788b1e4815c06a19332e9e5d87a955e1ed7da9bf0cf" +checksum = "f4029ec209b0cc480d209da3837a42c63801dd8548f09c1f4502c60accb62aeb" dependencies = [ + "bitflags 2.4.1", "gix-commitgraph", "gix-date", "gix-hash", @@ -1538,9 +1539,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0b24f3ecc79a5a53539de9c2e99425d0ef23feacdcf3faac983aa9a2f26849" +checksum = "0db829ebdca6180fbe32be7aed393591df6db4a72dbbc0b8369162390954d1cf" dependencies = [ "bstr", "gix-features", @@ -1552,9 +1553,9 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066432d4c277f9877f091279a597ea5331f68ca410efc874f0bdfb1cd348f92" +checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" dependencies = [ "fastrand", "unicode-normalization", diff --git a/Cargo.toml b/Cargo.toml index 7000ffab..3b855e18 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,7 @@ dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.61.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix = { version = "0.62.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.1", optional = true } indexmap = { version = "2.2.6", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } From de5b7f041a8c88ecf912b3be3b32d70f76518348 Mon Sep 17 00:00:00 2001 From: Michael Feist <90416568+Maxxus220@users.noreply.github.com> Date: Sun, 14 Apr 2024 10:02:00 -0500 Subject: [PATCH 256/651] fix(xonsh): remove `| cat` workaround from xonsh init (#5113) --- src/init/starship.xsh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/init/starship.xsh b/src/init/starship.xsh index a14ad996..ee69e3ef 100644 --- a/src/init/starship.xsh +++ b/src/init/starship.xsh @@ -8,8 +8,7 @@ def starship_prompt(): # but we can't use that function because of https://gitter.im/xonsh/xonsh?at=60e8832d82dd9050f5e0c96a jobs = sum(1 for job in __xonsh__.all_jobs.values() if job['obj'] and job['obj'].poll() is None) duration = round((last_cmd.ts[1] - last_cmd.ts[0]) * 1000) if last_cmd else 0 - # The `| cat` is a workaround for https://github.com/xonsh/xonsh/issues/3786. See https://github.com/starship/starship/pull/2807#discussion_r667316323. - return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration) | cat) + return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration)) def starship_rprompt(): last_cmd = __xonsh__.history[-1] if __xonsh__.history else None @@ -18,8 +17,7 @@ def starship_rprompt(): # but we can't use that function because of https://gitter.im/xonsh/xonsh?at=60e8832d82dd9050f5e0c96a jobs = sum(1 for job in __xonsh__.all_jobs.values() if job['obj'] and job['obj'].poll() is None) duration = round((last_cmd.ts[1] - last_cmd.ts[0]) * 1000) if last_cmd else 0 - # The `| cat` is a workaround for https://github.com/xonsh/xonsh/issues/3786. See https://github.com/starship/starship/pull/2807#discussion_r667316323. - return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration) --right | cat) + return $(::STARSHIP:: prompt --status=@(status) --jobs=@(jobs) --cmd-duration=@(duration) --right) $PROMPT = starship_prompt From a70a2e04bc5cd2a8a20300c54805de9736aebc8f Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Mon, 15 Apr 2024 00:02:54 +0900 Subject: [PATCH 257/651] docs(advanced-config): fix descriptions of the ble.sh settings (#5907) docs(advanced-config): fix the ble.sh settings --- docs/advanced-config/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index 941dde7b..f0efae1c 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -114,15 +114,15 @@ the prompt information is not always needed. To enable this, put this in `~/.bas `bleopt prompt_ps1_transient=`: The \ here is a colon-separated list of `always`, `same-dir` and `trim`. -When `prompt_ps1_final` is empty and this option has a non-empty value, +When `prompt_ps1_final` is empty and the option `prompt_ps1_transient` has a non-empty \, the prompt specified by `PS1` is erased on leaving the current command line. -If the value contains a field `trim`, only the last line of multiline `PS1` is +If \ contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be -redrawn as if `PS1=` is specified. When a field `same-dir` is contained in the -value and the current working directory is different from the final directory of +redrawn as if `PS1=` is specified. When a field `same-dir` is contained in +\ and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored. -Make the following changes to your `~/.bashrc` to customize what gets displayed on +Make the following changes to your `~/.blerc` (or in `~/.config/blesh/init.sh`) to customize what gets displayed on the left and on the right: - To customize what the left side of input gets replaced with, configure the @@ -130,7 +130,7 @@ the left and on the right: module here, you would do ```bash -bleopt prompt_ps1_final="$(starship module character)" +bleopt prompt_ps1_final='$(starship module character)' ``` - To customize what the right side of input gets replaced with, configure the @@ -138,7 +138,7 @@ bleopt prompt_ps1_final="$(starship module character)" the time at which the last command was started here, you would do ```bash -bleopt prompt_rps1_final="$(starship module time)" +bleopt prompt_rps1_final='$(starship module time)' ``` ## Custom pre-prompt and pre-execution Commands in Cmd @@ -337,7 +337,7 @@ Note: Continuation prompts are only available in the following shells: ```toml # ~/.config/starship.toml -# A continuation prompt that displays two filled in arrows +# A continuation prompt that displays two filled-in arrows continuation_prompt = '▶▶ ' ``` @@ -375,6 +375,6 @@ If multiple colors are specified for foreground/background, the last one in the Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist: -- Many terminals disable support for `blink` by default +- Many terminals disable support for `blink` by default. - `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564). -- `strikethrough` is not supported by the default macOS Terminal.app +- `strikethrough` is not supported by the default macOS Terminal.app. From 413364ece5bec523168fc78de0225c52dacee4f6 Mon Sep 17 00:00:00 2001 From: redistay <165581775+redistay@users.noreply.github.com> Date: Mon, 15 Apr 2024 03:19:30 +0800 Subject: [PATCH 258/651] docs: fix typo in README.md (#5902) docs: fix typos in README.md Signed-off-by: redistay --- docs/config/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config/README.md b/docs/config/README.md index 9756484d..8a18648c 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -4062,7 +4062,7 @@ threshold = 3 Using `repeat` and `repeat_offset` along with `character` module, one can get prompt like `❯❯❯` where last character is colored appropriately for return -status code and preceeding characters are provided by `shlvl`. +status code and preceding characters are provided by `shlvl`. ```toml # ~/.config/starship.toml From 52323fc51aef423772d350ec3d8c7f5b8fa27616 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 01:45:42 +0000 Subject: [PATCH 259/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.90.1 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index fb036aa3..5f4061b0 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.0/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.4/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" From f379b7991a74f3697534392469957390eeed537e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 01:46:07 +0000 Subject: [PATCH 260/651] build(deps): update dependency vitepress to ^1.1.0 --- docs/package-lock.json | 70 +++++++++++++++++++++--------------------- docs/package.json | 2 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 9b10f0df..b25d579a 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.0.2" + "vitepress": "^1.1.0" } }, "node_modules/@adobe/css-tools": { @@ -794,18 +794,18 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.2.0.tgz", - "integrity": "sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.3.0.tgz", + "integrity": "sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==", "dev": true }, "node_modules/@shikijs/transformers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.2.0.tgz", - "integrity": "sha512-xKn7DtA65DQV4FOfYsrvqM80xOy2xuXnxWWKsZmHv1VII/IOuDUDsWDu3KnpeLH6wqNJWp1GRoNUsHR1aw/VhQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.3.0.tgz", + "integrity": "sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==", "dev": true, "dependencies": { - "shiki": "1.2.0" + "shiki": "1.3.0" } }, "node_modules/@types/estree": { @@ -906,21 +906,21 @@ } }, "node_modules/@vue/devtools-api": { - "version": "7.0.20", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.0.20.tgz", - "integrity": "sha512-DGEIdotTQFll4187YGc/0awcag7UGJu9M6rE1Pxcs8AX/sGm0Ikk7UqQELmqYsyPzTT9s6OZzSPuBc4OatOXKA==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.0.27.tgz", + "integrity": "sha512-BFCFCusSDcw2UcOFD/QeK7OxD1x2C/m+uAN30Q7jLKECSW53hmz0urzJmX834GuWDZX/hIxkyUKnLLfEIP1c/w==", "dev": true, "dependencies": { - "@vue/devtools-kit": "^7.0.20" + "@vue/devtools-kit": "^7.0.27" } }, "node_modules/@vue/devtools-kit": { - "version": "7.0.20", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.20.tgz", - "integrity": "sha512-FgFuPuqrhQ51rR/sVi52FnGgrxJ3X1bvNra/SkBzPhxJVhfyL5w2YUJZI1FgCvtLAyPSomJNdvlG415ZbJsr6w==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.27.tgz", + "integrity": "sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==", "dev": true, "dependencies": { - "@vue/devtools-shared": "^7.0.20", + "@vue/devtools-shared": "^7.0.27", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", @@ -931,9 +931,9 @@ } }, "node_modules/@vue/devtools-shared": { - "version": "7.0.20", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.20.tgz", - "integrity": "sha512-E6CiCaYr6ZWOCYJgWodXcPCXxB12vgbUA1X1sG0F1tK5Bo5I35GJuTR8LBJLFHV0VpwLWvyrIi9drT1ZbuJxlg==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.27.tgz", + "integrity": "sha512-4VxtmZ6yjhiSloqZZq2UYU0TBGxOJ8GxWvp5OlAH70zYqi0FIAyWGPkOhvfoZ7DKQyv2UU0mmKzFHjsEkelGyQ==", "dev": true, "dependencies": { "rfdc": "^1.3.1" @@ -1574,12 +1574,12 @@ "peer": true }, "node_modules/shiki": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.2.0.tgz", - "integrity": "sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.3.0.tgz", + "integrity": "sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==", "dev": true, "dependencies": { - "@shikijs/core": "1.2.0" + "@shikijs/core": "1.3.0" } }, "node_modules/source-map": { @@ -1642,13 +1642,13 @@ "dev": true }, "node_modules/vite": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.3.tgz", - "integrity": "sha512-+i1oagbvkVIhEy9TnEV+fgXsng13nZM90JQbrcPrf6DvW2mXARlz+DK7DLiDP+qeKoD1FCVx/1SpFL1CLq9Mhw==", + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.8.tgz", + "integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==", "dev": true, "dependencies": { "esbuild": "^0.20.1", - "postcss": "^8.4.36", + "postcss": "^8.4.38", "rollup": "^4.13.0" }, "bin": { @@ -1697,25 +1697,25 @@ } }, "node_modules/vitepress": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.2.tgz", - "integrity": "sha512-bEj9yTEdWyewJFOhEREZF+mXuAgOq27etuJZT6DZSp+J3XpQstXMJc5piSVwhZBtuj8OfA0iXy+jdP1c71KMYQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.1.0.tgz", + "integrity": "sha512-G+NS5I2OETxC0SfGAMDO75JWNkrcir0UCptuhQMNoaZhhlqvYtTDQhph4qGc5dtiTtZkcFa/bCcSx+A2gSS3lA==", "dev": true, "dependencies": { "@docsearch/css": "^3.6.0", "@docsearch/js": "^3.6.0", - "@shikijs/core": "^1.2.0", - "@shikijs/transformers": "^1.2.0", + "@shikijs/core": "^1.2.4", + "@shikijs/transformers": "^1.2.4", "@types/markdown-it": "^13.0.7", "@vitejs/plugin-vue": "^5.0.4", - "@vue/devtools-api": "^7.0.16", + "@vue/devtools-api": "^7.0.25", "@vueuse/core": "^10.9.0", "@vueuse/integrations": "^10.9.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", - "shiki": "^1.2.0", - "vite": "^5.2.2", + "shiki": "^1.2.4", + "vite": "^5.2.8", "vue": "^3.4.21" }, "bin": { diff --git a/docs/package.json b/docs/package.json index 7a1ccce7..9a16bc36 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.0.2" + "vitepress": "^1.1.0" } } From 2716db6d32a704aac9eacfd2ca0a9297201c65f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 13:09:55 +0000 Subject: [PATCH 261/651] build(deps): update rust crate chrono to 0.4.38 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 82cd1dc4..598d1a72 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -393,9 +393,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index 3b855e18..bc28b577 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ gix-max-perf = ["gix-features/zlib-ng", "gix/fast-sha1"] gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] -chrono = { version = "0.4.37", default-features = false, features = ["clock", "std", "wasmbind"] } +chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.4", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.2" dirs = "5.0.1" From fe1a8df6fa5121cc83b288cf054a8ed16631d335 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Tue, 16 Apr 2024 15:16:00 +0900 Subject: [PATCH 262/651] fix(bash): fix handling of the preserved DEBUG trap (used in Bash <= 4.3) (#5908) * refactor(bash): use `STARSHIP_*` for the internal variable names The current codebase uses `dbg_trap` to save the original DEBUG trap in bash <= 4.3. However, the variable name possibly conflicts a user variable since it is not prefixed by `_starship` or `starship_` or `STARSHIP_`. In this patch, we rename `dbg_trap` to `STARSHIP_DEBUG_TRAP` following other variables of `STARSHIP_EXIT_STATUS` and `STARSHIP_PIPE_STATUS`. We also rename the variable `_PRESERVED_PROMPT_COMMAND` to `STARSHIP_PROMPT_COMMAND`. * fix(bash): correctly extract DEBUG trap with spaces * fix(bash): evaluate DEBUG trap by eval The current code executes the saved DEBUG trap just by $_starship_dbg_trap. This causes various problems. The content of the variable `_starship_dbg_trap` is unexpectedly subject to the word splitting with the pathname expansions. Also, the needed shell expansions and quote removal are not performed. With a custom IFS, the content of the variable will be split in an unexpected way. The saved DEBUG trap needs to be executed by eval "$_starship_dbg_trap". --- src/init/starship.bash | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/init/starship.bash b/src/init/starship.bash index 1e6a972b..e08a9fbd 100644 --- a/src/init/starship.bash +++ b/src/init/starship.bash @@ -65,8 +65,8 @@ starship_precmd() { # command pipeline, which may rely on it. _starship_set_return "$STARSHIP_CMD_STATUS" - if [[ -n "${_PRESERVED_PROMPT_COMMAND-}" ]]; then - eval "$_PRESERVED_PROMPT_COMMAND" + if [[ -n "${STARSHIP_PROMPT_COMMAND-}" ]]; then + eval "$STARSHIP_PROMPT_COMMAND" fi local -a ARGS=(--terminal-width="${COLUMNS}" --status="${STARSHIP_CMD_STATUS}" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --jobs="${NUM_JOBS}") @@ -110,12 +110,13 @@ else # We want to avoid destroying an existing DEBUG hook. If we detect one, create # a new function that runs both the existing function AND our function, then # re-trap DEBUG to use this new function. This prevents a trap clobber. - dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')" - if [[ -z "$dbg_trap" ]]; then + eval "STARSHIP_DEBUG_TRAP=($(trap -p DEBUG))" + STARSHIP_DEBUG_TRAP=("${STARSHIP_DEBUG_TRAP[2]}") + if [[ -z "$STARSHIP_DEBUG_TRAP" ]]; then trap 'starship_preexec "$_"' DEBUG - elif [[ "$dbg_trap" != 'starship_preexec "$_"' && "$dbg_trap" != 'starship_preexec_all "$_"' ]]; then + elif [[ "$STARSHIP_DEBUG_TRAP" != 'starship_preexec "$_"' && "$STARSHIP_DEBUG_TRAP" != 'starship_preexec_all "$_"' ]]; then starship_preexec_all() { - local PREV_LAST_ARG=$1 ; $dbg_trap; starship_preexec; : "$PREV_LAST_ARG"; + local PREV_LAST_ARG=$1 ; eval -- "$STARSHIP_DEBUG_TRAP"; starship_preexec; : "$PREV_LAST_ARG"; } trap 'starship_preexec_all "$_"' DEBUG fi @@ -130,7 +131,7 @@ else # Prepending to PROMPT_COMMAND breaks "command duration" module. # So, we are preserving the existing PROMPT_COMMAND # which will be executed later in the starship_precmd function - _PRESERVED_PROMPT_COMMAND="$PROMPT_COMMAND" + STARSHIP_PROMPT_COMMAND="$PROMPT_COMMAND" PROMPT_COMMAND="starship_precmd" fi fi From 318daa0d1d94e2e68c4a3a79d34abc965874af4f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 06:16:56 +0000 Subject: [PATCH 263/651] build(deps): update rust crate serde_json to 1.0.116 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 598d1a72..da343492 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2620,9 +2620,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index bc28b577..7ac31427 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.4", default-features = false, features = ["perf", "std rust-ini = "0.21.0" semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } -serde_json = "1.0.115" +serde_json = "1.0.116" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 98d0ac8e25f6aace7dc69bc9f4b66dc3b9a08e6f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 17:24:26 +0000 Subject: [PATCH 264/651] build(deps): update crate-ci/typos action to v1.20.9 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index bcdc93cf..5affee5d 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.8 + - uses: crate-ci/typos@v1.20.9 From f543f0def08e1f871946af86b84af0022a5200b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 21:40:21 +0000 Subject: [PATCH 265/651] build(deps): update rust crate serde to 1.0.198 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index da343492..9e537828 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2589,18 +2589,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 7ac31427..156b4a49 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.22" -serde = { version = "1.0.197", features = ["derive"] } +serde = { version = "1.0.198", features = ["derive"] } serde_json = "1.0.116" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } From 0bd1c7572816b8d08b78b0ad0f38572a8674259c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 04:21:29 +0000 Subject: [PATCH 266/651] build(deps): update rust crate toml_edit to 0.22.11 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e537828..b23be24c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2823,7 +2823,7 @@ dependencies = [ "tempfile", "terminal_size", "toml 0.8.12", - "toml_edit 0.22.9", + "toml_edit 0.22.11", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3086,7 +3086,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.9", + "toml_edit 0.22.11", ] [[package]] @@ -3111,9 +3111,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.9" +version = "0.22.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +checksum = "fb686a972ccef8537b39eead3968b0e8616cb5040dbb9bba93007c8e07c9215f" dependencies = [ "indexmap 2.2.6", "serde", diff --git a/Cargo.toml b/Cargo.toml index 156b4a49..adb7efd6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ strsim = "0.11.1" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.12", features = ["preserve_order"] } -toml_edit = "0.22.9" +toml_edit = "0.22.11" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" From cce9d335095a10e7f53cb5c6e54d27d3ce8ac1e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 16:15:26 +0000 Subject: [PATCH 267/651] build(deps): update rust crate toml_edit to 0.22.12 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b23be24c..f798731d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2823,7 +2823,7 @@ dependencies = [ "tempfile", "terminal_size", "toml 0.8.12", - "toml_edit 0.22.11", + "toml_edit 0.22.12", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3086,7 +3086,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.11", + "toml_edit 0.22.12", ] [[package]] @@ -3111,9 +3111,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.11" +version = "0.22.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb686a972ccef8537b39eead3968b0e8616cb5040dbb9bba93007c8e07c9215f" +checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" dependencies = [ "indexmap 2.2.6", "serde", diff --git a/Cargo.toml b/Cargo.toml index adb7efd6..ab644639 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ strsim = "0.11.1" systemstat = "=0.2.3" terminal_size = "0.3.0" toml = { version = "0.8.12", features = ["preserve_order"] } -toml_edit = "0.22.11" +toml_edit = "0.22.12" unicode-segmentation = "1.11.0" unicode-width = "0.1.11" urlencoding = "2.1.3" From 7a502e3c4aa592eef6e4871f34f3955ac6c10a6a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 01:03:25 +0000 Subject: [PATCH 268/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.90.3 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index 5f4061b0..08e7cbf1 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.1/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.4/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" From 0eac8e653754134a3109f7d08a9e977b51833a8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 01:03:51 +0000 Subject: [PATCH 269/651] build(deps): update dependency vitepress to ^1.1.3 --- docs/package-lock.json | 165 ++++++++++++++++++++--------------------- docs/package.json | 2 +- 2 files changed, 82 insertions(+), 85 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index b25d579a..f09f9336 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.1.0" + "vitepress": "^1.1.3" } }, "node_modules/@adobe/css-tools": { @@ -191,9 +191,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -821,9 +821,9 @@ "dev": true }, "node_modules/@types/markdown-it": { - "version": "13.0.7", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.7.tgz", - "integrity": "sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", "dev": true, "dependencies": { "@types/linkify-it": "*", @@ -856,53 +856,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz", - "integrity": "sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.23.tgz", + "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/shared": "3.4.21", + "@babel/parser": "^7.24.1", + "@vue/shared": "3.4.23", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz", - "integrity": "sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", + "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-core": "3.4.23", + "@vue/shared": "3.4.23" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz", - "integrity": "sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz", + "integrity": "sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==", "dev": true, "dependencies": { - "@babel/parser": "^7.23.9", - "@vue/compiler-core": "3.4.21", - "@vue/compiler-dom": "3.4.21", - "@vue/compiler-ssr": "3.4.21", - "@vue/shared": "3.4.21", + "@babel/parser": "^7.24.1", + "@vue/compiler-core": "3.4.23", + "@vue/compiler-dom": "3.4.23", + "@vue/compiler-ssr": "3.4.23", + "@vue/shared": "3.4.23", "estree-walker": "^2.0.2", - "magic-string": "^0.30.7", - "postcss": "^8.4.35", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.8", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz", - "integrity": "sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz", + "integrity": "sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-dom": "3.4.23", + "@vue/shared": "3.4.23" } }, "node_modules/@vue/devtools-api": { @@ -940,52 +940,52 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz", - "integrity": "sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.23.tgz", + "integrity": "sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==", "dev": true, "dependencies": { - "@vue/shared": "3.4.21" + "@vue/shared": "3.4.23" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.21.tgz", - "integrity": "sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.23.tgz", + "integrity": "sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==", "dev": true, "dependencies": { - "@vue/reactivity": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/reactivity": "3.4.23", + "@vue/shared": "3.4.23" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz", - "integrity": "sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz", + "integrity": "sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==", "dev": true, "dependencies": { - "@vue/runtime-core": "3.4.21", - "@vue/shared": "3.4.21", + "@vue/runtime-core": "3.4.23", + "@vue/shared": "3.4.23", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.21.tgz", - "integrity": "sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.23.tgz", + "integrity": "sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==", "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-ssr": "3.4.23", + "@vue/shared": "3.4.23" }, "peerDependencies": { - "vue": "3.4.21" + "vue": "3.4.23" } }, "node_modules/@vue/shared": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz", - "integrity": "sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.23.tgz", + "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==", "dev": true }, "node_modules/@vueuse/core": { @@ -1379,15 +1379,12 @@ "peer": true }, "node_modules/magic-string": { - "version": "0.30.8", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", - "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" } }, "node_modules/mark.js": { @@ -1642,9 +1639,9 @@ "dev": true }, "node_modules/vite": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.8.tgz", - "integrity": "sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==", + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", "dev": true, "dependencies": { "esbuild": "^0.20.1", @@ -1697,26 +1694,26 @@ } }, "node_modules/vitepress": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.1.0.tgz", - "integrity": "sha512-G+NS5I2OETxC0SfGAMDO75JWNkrcir0UCptuhQMNoaZhhlqvYtTDQhph4qGc5dtiTtZkcFa/bCcSx+A2gSS3lA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.1.3.tgz", + "integrity": "sha512-hGrIYN0w9IHWs0NQSnlMjKV/v/HLfD+Ywv5QdvCSkiT32mpNOOwUrZjnqZv/JL/WBPpUc94eghTUvmipxw0xrA==", "dev": true, "dependencies": { "@docsearch/css": "^3.6.0", "@docsearch/js": "^3.6.0", - "@shikijs/core": "^1.2.4", - "@shikijs/transformers": "^1.2.4", - "@types/markdown-it": "^13.0.7", + "@shikijs/core": "^1.3.0", + "@shikijs/transformers": "^1.3.0", + "@types/markdown-it": "^14.0.1", "@vitejs/plugin-vue": "^5.0.4", - "@vue/devtools-api": "^7.0.25", + "@vue/devtools-api": "^7.0.27", "@vueuse/core": "^10.9.0", "@vueuse/integrations": "^10.9.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", - "shiki": "^1.2.4", - "vite": "^5.2.8", - "vue": "^3.4.21" + "shiki": "^1.3.0", + "vite": "^5.2.9", + "vue": "^3.4.23" }, "bin": { "vitepress": "bin/vitepress.js" @@ -1735,16 +1732,16 @@ } }, "node_modules/vue": { - "version": "3.4.21", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.21.tgz", - "integrity": "sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==", + "version": "3.4.23", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.23.tgz", + "integrity": "sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.21", - "@vue/compiler-sfc": "3.4.21", - "@vue/runtime-dom": "3.4.21", - "@vue/server-renderer": "3.4.21", - "@vue/shared": "3.4.21" + "@vue/compiler-dom": "3.4.23", + "@vue/compiler-sfc": "3.4.23", + "@vue/runtime-dom": "3.4.23", + "@vue/server-renderer": "3.4.23", + "@vue/shared": "3.4.23" }, "peerDependencies": { "typescript": "*" diff --git a/docs/package.json b/docs/package.json index 9a16bc36..d1c874c6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.1.0" + "vitepress": "^1.1.3" } } From 94e8dad1a836140b61056569c7398e422c0aedec Mon Sep 17 00:00:00 2001 From: David Knaack Date: Mon, 22 Apr 2024 08:44:35 +0200 Subject: [PATCH 270/651] build(deps): update rust crate windows to 0.56.0 (#5928) * build(deps): update rust crate windows to 0.56.0 * chore: update lockfile manually --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 117 ++++++++++++++++++++++++++++++++++++++--------------- Cargo.toml | 2 +- 2 files changed, 85 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f798731d..42ec2129 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -402,7 +402,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.3", + "windows-targets 0.52.5", ] [[package]] @@ -2829,7 +2829,7 @@ dependencies = [ "urlencoding", "versions", "which", - "windows", + "windows 0.56.0", "winres", "yaml-rust2", ] @@ -2906,7 +2906,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d59cba96cdbf291d74490ac477c66885ebdc87e28faca532ec1e00f4f3bd578" dependencies = [ "quick-xml 0.30.0", - "windows", + "windows 0.54.0", "windows-version", ] @@ -3429,7 +3429,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" dependencies = [ "windows-core 0.54.0", - "windows-targets 0.52.3", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" +dependencies = [ + "windows-core 0.56.0", + "windows-targets 0.52.5", ] [[package]] @@ -3448,16 +3458,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ "windows-result", - "windows-targets 0.52.3", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-core" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-implement" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + +[[package]] +name = "windows-interface" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", ] [[package]] name = "windows-result" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64" +checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.5", ] [[package]] @@ -3475,7 +3519,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.5", ] [[package]] @@ -3495,17 +3539,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -3514,7 +3559,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.5", ] [[package]] @@ -3525,9 +3570,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -3537,9 +3582,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -3549,9 +3594,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -3561,9 +3612,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -3573,9 +3624,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -3585,9 +3636,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -3597,9 +3648,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.3" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" diff --git a/Cargo.toml b/Cargo.toml index ab644639..3d0a32f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,7 +104,7 @@ features = ["preserve_order", "indexmap2"] deelevate = "0.2.0" [target.'cfg(windows)'.dependencies.windows] -version = "0.54.0" +version = "0.56.0" features = [ "Win32_Foundation", "Win32_UI_Shell", From b3703228525eb3546f60f99493b6286633ff0b23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 17:44:06 +0000 Subject: [PATCH 271/651] build(deps): update embarkstudios/cargo-deny-action action to v1.6.3 --- .github/workflows/security-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 6a10ec2f..9b4d3653 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -24,6 +24,6 @@ jobs: - name: Setup | Checkout uses: actions/checkout@v4 - name: Test | Security Audit - uses: EmbarkStudios/cargo-deny-action@v1.6.2 + uses: EmbarkStudios/cargo-deny-action@v1.6.3 with: command: check ${{ matrix.checks }} From 76dc65660256e921f9cfeae595e774cbe2153942 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 22:56:05 +0000 Subject: [PATCH 272/651] build(deps): update crate-ci/typos action to v1.20.10 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 5affee5d..daa4b5ad 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.9 + - uses: crate-ci/typos@v1.20.10 From ad4fa687e7e063ad6e5ff77df14d36f496642217 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:44:43 +0000 Subject: [PATCH 273/651] build(deps): update reviewdog/action-suggester action to v1.12.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e781dbdf..aa683ff5 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.11.0 + uses: reviewdog/action-suggester@v1.12.0 with: tool_name: starship config-schema filter_mode: nofilter From 32baf85b64d26c060ad3b4307aed7778a6b67dc3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 23:25:23 +0000 Subject: [PATCH 274/651] build(deps): update rust crate unicode-width to 0.1.12 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 42ec2129..0c3aa1cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3235,9 +3235,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "unicode-xid" diff --git a/Cargo.toml b/Cargo.toml index 3d0a32f6..d2a621ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,7 +83,7 @@ terminal_size = "0.3.0" toml = { version = "0.8.12", features = ["preserve_order"] } toml_edit = "0.22.12" unicode-segmentation = "1.11.0" -unicode-width = "0.1.11" +unicode-width = "0.1.12" urlencoding = "2.1.3" versions = "6.2.0" which = "6.0.1" From efb9ea110c7f4917c7b431f6d92def7e6fbd9d11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 05:28:55 +0000 Subject: [PATCH 275/651] build(deps): update rust crate serde to 1.0.199 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c3aa1cf..345c5c0e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2589,18 +2589,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.198" +version = "1.0.199" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.198" +version = "1.0.199" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d2a621ad..2cfe136e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.22" -serde = { version = "1.0.198", features = ["derive"] } +serde = { version = "1.0.199", features = ["derive"] } serde_json = "1.0.116" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } From f52af9b5aaab1e70cd9f1e8aafbe992ede463530 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Apr 2024 19:49:42 +0000 Subject: [PATCH 276/651] build(deps): update rust crate schemars to 0.8.17 --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 345c5c0e..2119d6c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2533,9 +2533,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +checksum = "7f55c82c700538496bdc329bb4918a81f87cc8888811bd123cf325a0f2f8d309" dependencies = [ "dyn-clone", "indexmap 1.9.3", @@ -2547,14 +2547,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +checksum = "83263746fe5e32097f06356968a077f96089739c927a61450efa069905eec108" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.53", ] [[package]] @@ -2609,13 +2609,13 @@ dependencies = [ [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.53", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2cfe136e..ab8e8116 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -96,7 +96,7 @@ home = "0.5.9" shell-words = "1.1.0" [dependencies.schemars] -version = "0.8.16" +version = "0.8.17" optional = true features = ["preserve_order", "indexmap2"] From 24fdcc6d2e825fd01bd3bc4f2b061b5883cef5c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 01:33:57 +0000 Subject: [PATCH 277/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.90.4 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index 08e7cbf1..30d6bcf1 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.3/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.4/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.4/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" From d0f542a6d7dae0decb6050fa5a539f994ea27535 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 01:34:21 +0000 Subject: [PATCH 278/651] build(deps): update dependency vitepress to ^1.1.4 --- docs/package-lock.json | 122 ++++++++++++++++++++--------------------- docs/package.json | 2 +- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index f09f9336..ad8af265 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.1.3" + "vitepress": "^1.1.4" } }, "node_modules/@adobe/css-tools": { @@ -856,53 +856,53 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.23.tgz", - "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.25.tgz", + "integrity": "sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==", "dev": true, "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/shared": "3.4.23", + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.25", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", - "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.25.tgz", + "integrity": "sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-core": "3.4.25", + "@vue/shared": "3.4.25" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz", - "integrity": "sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.25.tgz", + "integrity": "sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/compiler-core": "3.4.23", - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23", + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.25", + "@vue/compiler-dom": "3.4.25", + "@vue/compiler-ssr": "3.4.25", + "@vue/shared": "3.4.25", "estree-walker": "^2.0.2", - "magic-string": "^0.30.8", + "magic-string": "^0.30.10", "postcss": "^8.4.38", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz", - "integrity": "sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.25.tgz", + "integrity": "sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-dom": "3.4.25", + "@vue/shared": "3.4.25" } }, "node_modules/@vue/devtools-api": { @@ -940,52 +940,52 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.23.tgz", - "integrity": "sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.25.tgz", + "integrity": "sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==", "dev": true, "dependencies": { - "@vue/shared": "3.4.23" + "@vue/shared": "3.4.25" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.23.tgz", - "integrity": "sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.25.tgz", + "integrity": "sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==", "dev": true, "dependencies": { - "@vue/reactivity": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/reactivity": "3.4.25", + "@vue/shared": "3.4.25" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz", - "integrity": "sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.25.tgz", + "integrity": "sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==", "dev": true, "dependencies": { - "@vue/runtime-core": "3.4.23", - "@vue/shared": "3.4.23", + "@vue/runtime-core": "3.4.25", + "@vue/shared": "3.4.25", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.23.tgz", - "integrity": "sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.25.tgz", + "integrity": "sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==", "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-ssr": "3.4.25", + "@vue/shared": "3.4.25" }, "peerDependencies": { - "vue": "3.4.23" + "vue": "3.4.25" } }, "node_modules/@vue/shared": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.23.tgz", - "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.25.tgz", + "integrity": "sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==", "dev": true }, "node_modules/@vueuse/core": { @@ -1694,9 +1694,9 @@ } }, "node_modules/vitepress": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.1.3.tgz", - "integrity": "sha512-hGrIYN0w9IHWs0NQSnlMjKV/v/HLfD+Ywv5QdvCSkiT32mpNOOwUrZjnqZv/JL/WBPpUc94eghTUvmipxw0xrA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.1.4.tgz", + "integrity": "sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==", "dev": true, "dependencies": { "@docsearch/css": "^3.6.0", @@ -1712,8 +1712,8 @@ "mark.js": "8.11.1", "minisearch": "^6.3.0", "shiki": "^1.3.0", - "vite": "^5.2.9", - "vue": "^3.4.23" + "vite": "^5.2.10", + "vue": "^3.4.25" }, "bin": { "vitepress": "bin/vitepress.js" @@ -1732,16 +1732,16 @@ } }, "node_modules/vue": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.23.tgz", - "integrity": "sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==", + "version": "3.4.25", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz", + "integrity": "sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-sfc": "3.4.23", - "@vue/runtime-dom": "3.4.23", - "@vue/server-renderer": "3.4.23", - "@vue/shared": "3.4.23" + "@vue/compiler-dom": "3.4.25", + "@vue/compiler-sfc": "3.4.25", + "@vue/runtime-dom": "3.4.25", + "@vue/server-renderer": "3.4.25", + "@vue/shared": "3.4.25" }, "peerDependencies": { "typescript": "*" diff --git a/docs/package.json b/docs/package.json index d1c874c6..2d52ad97 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.1.3" + "vitepress": "^1.1.4" } } From f353ab4ad1a4dcc9ca9268b3db0dc271842aab10 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 20:11:37 +0000 Subject: [PATCH 279/651] build(deps): update crate-ci/typos action to v1.21.0 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index daa4b5ad..6e9b0f16 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.20.10 + - uses: crate-ci/typos@v1.21.0 From 17011019b830d8d7698455f4fa869dada0c538f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 15:39:50 +0000 Subject: [PATCH 280/651] build(deps): update rust crate mockall to 0.12.1 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index ab8e8116..342525e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -124,7 +124,7 @@ dunce = "1.0.4" winres = "0.1.12" [dev-dependencies] -mockall = "0.12" +mockall = "0.12.1" tempfile = "3.10.1" [profile.release] From 46144f06d6e3209107178d1cc2c9874ee5f99fb1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 19:10:17 +0000 Subject: [PATCH 281/651] build(deps): update rust crate serde to 1.0.200 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2119d6c2..ea9effa0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2589,18 +2589,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.199" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.199" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 342525e4..f4d2724f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.22" -serde = { version = "1.0.199", features = ["derive"] } +serde = { version = "1.0.200", features = ["derive"] } serde_json = "1.0.116" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } From 2eb5e7e73451a8113b32fdbeca8e0c684b776e05 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 01:08:54 +0000 Subject: [PATCH 282/651] build(deps): update dprint plugins --- .dprint.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.dprint.json b/.dprint.json index 30d6bcf1..2f2a3299 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,9 +25,9 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.4/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.5/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", - "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.16.4/plugin.wasm", + "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.17.0/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" ] } From 71d4b8544d5a2376146479bd2be7c59d551895ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 19:45:17 +0000 Subject: [PATCH 283/651] build(deps): update rust crate schemars to 0.8.19 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea9effa0..ddf48bb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2533,9 +2533,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.17" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f55c82c700538496bdc329bb4918a81f87cc8888811bd123cf325a0f2f8d309" +checksum = "fc6e7ed6919cb46507fb01ff1654309219f62b4d603822501b0b80d42f6f21ef" dependencies = [ "dyn-clone", "indexmap 1.9.3", @@ -2547,9 +2547,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.17" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83263746fe5e32097f06356968a077f96089739c927a61450efa069905eec108" +checksum = "185f2b7aa7e02d418e453790dde16890256bbd2bcd04b7dc5348811052b53f49" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index f4d2724f..3ecb898c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -96,7 +96,7 @@ home = "0.5.9" shell-words = "1.1.0" [dependencies.schemars] -version = "0.8.17" +version = "0.8.19" optional = true features = ["preserve_order", "indexmap2"] From 875213ce24af5a7423883e682398c747caae575c Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Tue, 7 May 2024 08:55:39 +0900 Subject: [PATCH 284/651] docs: add kawaii logo (#5965) --- docs/.vitepress/theme/index.css | 4 ++++ docs/README.md | 14 ++++++++++++++ docs/public/logo-uwu.png | Bin 0 -> 155211 bytes 3 files changed, 18 insertions(+) create mode 100644 docs/public/logo-uwu.png diff --git a/docs/.vitepress/theme/index.css b/docs/.vitepress/theme/index.css index 0434a59e..293e702a 100644 --- a/docs/.vitepress/theme/index.css +++ b/docs/.vitepress/theme/index.css @@ -21,6 +21,10 @@ transform: none; } +.VPHero .image img.uwu { + max-height: 290px; +} + .VPHero .container .actions { justify-content: center !important; } diff --git a/docs/README.md b/docs/README.md index 2cf7a0c2..89164622 100644 --- a/docs/README.md +++ b/docs/README.md @@ -22,6 +22,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + + N3WzY(QW7iJ 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

    ^Ap+z8%xIpC6AOuAPaYZt3 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

    9z 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 literal 0 HcmV?d00001 From ff9965ebb9e0026512dca41319485feef5547fda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 04:00:56 +0000 Subject: [PATCH 285/651] build(deps): update rust crate semver to 1.0.23 --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ddf48bb7..2c6b9e93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2574,9 +2574,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "semver-parser" @@ -2811,7 +2811,7 @@ dependencies = [ "regex", "rust-ini", "schemars", - "semver 1.0.22", + "semver 1.0.23", "serde", "serde_json", "sha1", diff --git a/Cargo.toml b/Cargo.toml index 3ecb898c..b66ce889 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,7 @@ rand = "0.8.5" rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" -semver = "1.0.22" +semver = "1.0.23" serde = { version = "1.0.200", features = ["derive"] } serde_json = "1.0.116" sha1 = "0.10.6" From f4a7b22dac5dabec134f9640bd3342dab8e9a70c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 00:22:06 +0000 Subject: [PATCH 286/651] build(deps): update rust crate serde to 1.0.201 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c6b9e93..8c6b42e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2589,18 +2589,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.200" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" +checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.200" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" +checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index b66ce889..6c0d1d02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.23" -serde = { version = "1.0.200", features = ["derive"] } +serde = { version = "1.0.201", features = ["derive"] } serde_json = "1.0.116" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } From b74d0c6bd8af9099d4a4a5ae70e09be9c7a9f82a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 03:35:31 +0000 Subject: [PATCH 287/651] build(deps): update rust crate serde_json to 1.0.117 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c6b42e8..0f3895c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2620,9 +2620,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 6c0d1d02..acb4ce50 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.4", default-features = false, features = ["perf", "std rust-ini = "0.21.0" semver = "1.0.23" serde = { version = "1.0.201", features = ["derive"] } -serde_json = "1.0.116" +serde_json = "1.0.117" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From 270c06259b97676704c1d91372e93a08a02318b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 12 May 2024 09:58:12 +0200 Subject: [PATCH 288/651] docs: link to official nixos wiki (#5967) This commit updates the the link from the former, unofficial nixos wiki page to the new https://wiki.nixos.org ref: NixOS/foundation#113 --- docs/installing/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installing/README.md b/docs/installing/README.md index 019ea924..898e67a8 100644 --- a/docs/installing/README.md +++ b/docs/installing/README.md @@ -49,7 +49,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary From 84162dcd8104cd0b6f118692405146eb6f62fc79 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 12 May 2024 09:59:26 +0200 Subject: [PATCH 289/651] ci: enable aarch64 msi building (#5951) --- .github/workflows/release.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4d9f44f..af06a831 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -98,8 +98,7 @@ jobs: - name: Setup | Install cargo-wix [Windows] continue-on-error: true - # aarch64 is only supported in wix 4.0 development builds - if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc' + if: matrix.os == 'windows-latest' run: cargo install --version 0.3.4 cargo-wix env: # cargo-wix does not require static crt @@ -119,7 +118,7 @@ jobs: - name: Build | Installer [Windows] continue-on-error: true - if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc' + if: matrix.os == 'windows-latest' run: > cargo wix -v --no-build --nocapture -I install/windows/main.wxs --target ${{ matrix.target }} @@ -147,7 +146,7 @@ jobs: - name: Release | Upload installer artifacts [Windows] continue-on-error: true - if: matrix.os == 'windows-latest' && matrix.target != 'aarch64-pc-windows-msvc' + if: matrix.os == 'windows-latest' uses: actions/upload-artifact@v4 with: name: starship-${{ matrix.target }}.msi @@ -320,9 +319,9 @@ jobs: needs: [release_please, github_build, upload_artifacts] if: ${{ needs.release_please.outputs.release_created == 'true' }} env: - URL_64: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-x86_64-pc-windows-msvc.msi - URL_32: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-i686-pc-windows-msvc.msi - URL_ARM: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-aarch64-pc-windows-msvc.zip + URL_64: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-x86_64-pc-windows-msvc + URL_32: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-i686-pc-windows-msvc + URL_ARM: https://github.com/starship/starship/releases/download/${{ needs.release_please.outputs.tag_name }}/starship-aarch64-pc-windows-msvc steps: # Publishing will fail if the repo is too far behind the upstream - run: gh repo sync matchai/winget-pkgs @@ -331,7 +330,11 @@ jobs: - run: | $version = '${{ needs.release_please.outputs.tag_name }}'.replace('v', '') iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe - ./wingetcreate.exe update Starship.Starship -s -v $version -u $env:URL_64 $env:URL_32 $env:URL_ARM -t ${{ secrets.GH_PAT }} + ./wingetcreate.exe update Starship.Starship -s -v $version ` + -u ${{ env.URL_64 }}.msi ${{ env.URL_64 }}.zip ` + ${{ env.URL_32 }}.msi ${{ env.URL_32 }}.zip ` + ${{ env.URL_ARM }}.msi ${{ env.URL_ARM }}.zip ` + -t ${{ secrets.GH_PAT }} choco_update: name: Update Chocolatey Package From 6a7c3b07ba3ca87ceffd9a08c736ce95e221012e Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 12 May 2024 10:00:20 +0200 Subject: [PATCH 290/651] ci: add preliminary windows codesigning via signpath (#5944) --- .github/workflows/release.yml | 30 ++++++++++++++++++++++++++++-- .github/workflows/workflow.yml | 27 ++++++++++++++++++++++++++- README.md | 4 ++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index af06a831..21c76714 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -122,7 +122,33 @@ jobs: run: > cargo wix -v --no-build --nocapture -I install/windows/main.wxs --target ${{ matrix.target }} - --output target/wix/starship-${{ matrix.target }}.msi + --output target/${{ matrix.target }}/release/starship-${{ matrix.target }}.msi + + - name: Sign | Upload [Windows] + continue-on-error: true + if: matrix.os == 'windows-latest' + uses: actions/upload-artifact@v4 + with: + name: unsigned-${{ matrix.name }} + path: | + target/${{ matrix.target }}/release/starship.exe + target/${{ matrix.target }}/release/starship-${{ matrix.target }}.msi + + - name: Sign | Sign [Windows] + continue-on-error: true + if: matrix.os == 'windows-latest' + uses: signpath/github-action-submit-signing-request@v0.3 + with: + api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' + organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}' + project-slug: 'starship' + signing-policy-slug: 'test-signing' + github-artifact-name: 'unsigned-${{ matrix.name }}' + wait-for-completion: false + # TODO use release-signing certificate: + # signing-policy-slug: 'release-signing' + # wait-for-completion: true + # output-artifact-directory: 'target/${{ matrix.target }}/release' - name: Post Build | Prepare artifacts [Windows] if: matrix.os == 'windows-latest' @@ -150,7 +176,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: starship-${{ matrix.target }}.msi - path: target/wix/starship-${{ matrix.target }}.msi + path: target/${{ matrix.target }}/release/starship-${{ matrix.target }}.msi # Notarize starship binaries for MacOS and build notarized pkg installers notarize_and_pkgbuild: diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index aa683ff5..79632412 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -201,7 +201,9 @@ jobs: - name: Build | Installer [Windows] continue-on-error: true if: matrix.os == 'windows-latest' && matrix.rust == 'stable' - run: cargo wix --dbg-build -v --nocapture -I install/windows/main.wxs + run: > + cargo wix --dbg-build -v --nocapture -I install/windows/main.wxs + --output target/debug/starship-x86_64-pc-windows-msvc.msi - name: Build | Chocolatey Package [Windows] continue-on-error: true @@ -219,6 +221,29 @@ jobs: env: STARSHIP_VERSION: v1.2.3 + - name: Sign | Upload Executable [Windows] + uses: actions/upload-artifact@v4 + continue-on-error: true + if: matrix.os == 'windows-latest' && matrix.rust == 'stable' && github.event_name == 'push' && github.repository == 'starship/starship' + with: + name: unsigned-artifacts-dbg + path: | + target/debug/starship.exe + target/debug/starship-x86_64-pc-windows-msvc.msi + + - name: Sign | Sign [Windows] + uses: signpath/github-action-submit-signing-request@v0.3 + continue-on-error: true + if: matrix.os == 'windows-latest' && matrix.rust == 'stable' && github.event_name == 'push' && github.repository == 'starship/starship' + with: + api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' + organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}' + project-slug: 'starship' + github-artifact-name: 'unsigned-artifacts-dbg' + signing-policy-slug: 'test-signing' + wait-for-completion: true + output-artifact-directory: target/debug + - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 if: github.repository == 'starship/starship' diff --git a/README.md b/README.md index ed47264b..1d048851 100644 --- a/README.md +++ b/README.md @@ -433,6 +433,8 @@ Please check out these previous works that helped inspire the creation of starsh Support this project by [becoming a sponsor](https://github.com/sponsors/starship). Your name or logo will show up here with a link to your website. +- Free code signing provided by [SignPath.io], certificate by [SignPath Foundation] +


    Starship rocket icon @@ -458,6 +460,8 @@ This project is [ISC](https://github.com/starship/starship/blob/master/LICENSE) [OSS]: https://software.opensuse.org/package/starship [pkgsrc]: https://pkgsrc.se/shells/starship [scoop]: https://github.com/ScoopInstaller/Main/blob/master/bucket/starship.json +[SignPath Foundation]: https://signpath.org +[SignPath.io]: https://signpath.io [termux]: https://github.com/termux/termux-packages/tree/master/packages/starship [void linux packages]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/starship [winget]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/Starship/Starship From 2221a88f5ada124c657a265b878e37be47998766 Mon Sep 17 00:00:00 2001 From: William Veal Phan Date: Sun, 12 May 2024 20:32:08 +0200 Subject: [PATCH 291/651] perf(scala): use scala-cli first to avoid timeout (#5952) fix(scala): use scala-cli first to avoid timeout --- src/modules/scala.rs | 90 ++++++++++++++++++++++++++++++++++++++++---- src/utils.rs | 4 ++ 2 files changed, 86 insertions(+), 8 deletions(-) diff --git a/src/modules/scala.rs b/src/modules/scala.rs index e1c46be3..36d8efa0 100644 --- a/src/modules/scala.rs +++ b/src/modules/scala.rs @@ -57,10 +57,17 @@ pub fn module<'a>(context: &'a Context) -> Option> { } fn get_scala_version(context: &Context) -> Option { - let command = context.exec_cmd("scalac", &["-version"])?; - let scala_version_string = get_command_string_output(command); - - parse_scala_version(&scala_version_string) + // try to get the version from scala-cli first as it is faster + // and return ONLY the version which save us from parsing the version string + context + .exec_cmd("scala-cli", &["version", "--scala"]) + .filter(|out| !out.stdout.is_empty()) + .map(|std_out_only| std_out_only.stdout.trim().to_string()) + .or_else(|| { + let command = context.exec_cmd("scalac", &["-version"])?; + let scala_version_string = get_command_string_output(command); + parse_scala_version(&scala_version_string) + }) } fn parse_scala_version(scala_version_string: &str) -> Option { @@ -111,7 +118,21 @@ mod tests { let dir = tempfile::tempdir()?; File::create(dir.path().join("Test.scala"))?.sync_all()?; let actual = ModuleRenderer::new("scala").path(dir.path()).collect(); - let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v3.4.1 "))); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_scala_file_using_scala_cli_only() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("Test.scala"))?.sync_all()?; + let actual = ModuleRenderer::new("scala") + // for test purpose only real use case will have both in path + .cmd("scalac -version", None) + .path(dir.path()) + .collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v3.4.1 "))); assert_eq!(expected, actual); dir.close() } @@ -121,6 +142,7 @@ mod tests { let dir = tempfile::tempdir()?; File::create(dir.path().join("Test.scala"))?.sync_all()?; let actual = ModuleRenderer::new("scala") + .cmd("scala-cli version --scala", None) .cmd("scalac -version", None) .path(dir.path()) .collect(); @@ -134,7 +156,7 @@ mod tests { let dir = tempfile::tempdir()?; File::create(dir.path().join("build.sbt"))?.sync_all()?; let actual = ModuleRenderer::new("scala").path(dir.path()).collect(); - let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v3.4.1 "))); assert_eq!(expected, actual); dir.close() } @@ -144,7 +166,7 @@ mod tests { let dir = tempfile::tempdir()?; File::create(dir.path().join(".scalaenv"))?.sync_all()?; let actual = ModuleRenderer::new("scala").path(dir.path()).collect(); - let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v3.4.1 "))); assert_eq!(expected, actual); dir.close() } @@ -154,7 +176,7 @@ mod tests { let dir = tempfile::tempdir()?; File::create(dir.path().join(".sbtenv"))?.sync_all()?; let actual = ModuleRenderer::new("scala").path(dir.path()).collect(); - let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v3.4.1 "))); assert_eq!(expected, actual); dir.close() } @@ -164,6 +186,58 @@ mod tests { let dir = tempfile::tempdir()?; fs::create_dir_all(dir.path().join(".metals"))?; let actual = ModuleRenderer::new("scala").path(dir.path()).collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v3.4.1 "))); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_sbt_file_without_scala_cli() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("build.sbt"))?.sync_all()?; + let actual = ModuleRenderer::new("scala") + .cmd("scala-cli version --scala", None) + .path(dir.path()) + .collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_scala_env_file_without_scala_cli() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join(".scalaenv"))?.sync_all()?; + let actual = ModuleRenderer::new("scala") + .cmd("scala-cli version --scala", None) + .path(dir.path()) + .collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_sbt_env_file_without_scala_cli() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join(".sbtenv"))?.sync_all()?; + let actual = ModuleRenderer::new("scala") + .cmd("scala-cli version --scala", None) + .path(dir.path()) + .collect(); + let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_metals_dir_without_scala_cli() -> io::Result<()> { + let dir = tempfile::tempdir()?; + fs::create_dir_all(dir.path().join(".metals"))?; + let actual = ModuleRenderer::new("scala") + .cmd("scala-cli version --scala", None) + .path(dir.path()) + .collect(); let expected = Some(format!("via {}", Color::Red.bold().paint("🆂 v2.13.5 "))); assert_eq!(expected, actual); dir.close() diff --git a/src/utils.rs b/src/utils.rs index c2c54b62..d6b56e6c 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -287,6 +287,10 @@ Elixir 1.10 (compiled with Erlang/OTP 22)\n", stdout: String::from("OpenJDK 64-Bit Server VM (13.0.2+8) for bsd-amd64 JRE (13.0.2+8), built on Feb 6 2020 02:07:52 by \"brew\" with clang 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.17)"), stderr: String::default(), }), + "scala-cli version --scala" => Some(CommandOutput { + stdout: String::from("3.4.1"), + stderr: String::default(), + }), "scalac -version" => Some(CommandOutput { stdout: String::from("Scala compiler version 2.13.5 -- Copyright 2002-2020, LAMP/EPFL and Lightbend, Inc."), stderr: String::default(), From 5facd85da56d28e74878286923f148bc468f71c3 Mon Sep 17 00:00:00 2001 From: John Hooks Date: Wed, 15 May 2024 12:46:14 -0400 Subject: [PATCH 292/651] feat(nats): Add NATS Context (#5900) --------- Co-authored-by: David Knaack --- .github/config-schema.json | 44 +++++++-- docs/config/README.md | 30 +++++++ .../presets/toml/plain-text-symbols.toml | 3 + src/configs/mod.rs | 3 + src/configs/nats.rs | 26 ++++++ src/configs/starship_root.rs | 1 + src/module.rs | 1 + src/modules/mod.rs | 3 + src/modules/nats.rs | 89 +++++++++++++++++++ src/utils.rs | 4 + 10 files changed, 195 insertions(+), 9 deletions(-) create mode 100644 src/configs/nats.rs create mode 100644 src/modules/nats.rs diff --git a/.github/config-schema.json b/.github/config-schema.json index bee19d81..3e9c2141 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1044,6 +1044,19 @@ } ] }, + "nats": { + "default": { + "disabled": true, + "format": "[$symbol($name )]($style)", + "style": "bold purple", + "symbol": "✉️ " + }, + "allOf": [ + { + "$ref": "#/definitions/NatsConfig" + } + ] + }, "nim": { "default": { "detect_extensions": [ @@ -2082,14 +2095,12 @@ "type": "string" }, "charging_symbol": { - "default": null, "type": [ "string", "null" ] }, "discharging_symbol": { - "default": null, "type": [ "string", "null" @@ -2760,14 +2771,12 @@ "type": "string" }, "repo_root_style": { - "default": null, "type": [ "string", "null" ] }, "before_repo_root_style": { - "default": null, "type": [ "string", "null" @@ -4282,35 +4291,30 @@ "type": "string" }, "user_pattern": { - "default": null, "type": [ "string", "null" ] }, "symbol": { - "default": null, "type": [ "string", "null" ] }, "style": { - "default": null, "type": [ "string", "null" ] }, "context_alias": { - "default": null, "type": [ "string", "null" ] }, "user_alias": { - "default": null, "type": [ "string", "null" @@ -4467,6 +4471,28 @@ }, "additionalProperties": false }, + "NatsConfig": { + "type": "object", + "properties": { + "format": { + "default": "[$symbol($name )]($style)", + "type": "string" + }, + "symbol": { + "default": "✉️ ", + "type": "string" + }, + "style": { + "default": "bold purple", + "type": "string" + }, + "disabled": { + "default": true, + "type": "boolean" + } + }, + "additionalProperties": false + }, "NimConfig": { "type": "object", "properties": { diff --git a/docs/config/README.md b/docs/config/README.md index 8a18648c..035c11ca 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -339,6 +339,7 @@ $aws\ $gcloud\ $openstack\ $azure\ +$nats\ $direnv\ $env_var\ $crystal\ @@ -2937,6 +2938,35 @@ truncation_length = 4 truncation_symbol = '' ``` +## NATS + +The `nats` module shows the name of the current [NATS](https://nats.io) context. + +### Options + +| Option | Default | Description | +| ---------- | -------------------------- | ------------------------------------------------------------ | +| `symbol` | `'✉️ '` | The symbol used before the NATS context (defaults to empty). | +| `style` | `'bold purple'` | The style for the module. | +| `format` | `'[$symbol$name]($style)'` | The format for the module. | +| `disabled` | `false` | Disables the `nats` module. | + +### Variables + +| Variable | Example | Description | +| -------- | ----------- | ------------------------------------ | +| name | `localhost` | The name of the NATS context | +| symbol | | Mirrors the value of option `symbol` | +| style\* | | Mirrors the value of option `style` | + +### Example + +```toml +[nats] +format = '[$symbol]($style)' +style = 'bold purple' +``` + ## Nim The `nim` module shows the currently installed version of [Nim](https://nim-lang.org/). diff --git a/docs/public/presets/toml/plain-text-symbols.toml b/docs/public/presets/toml/plain-text-symbols.toml index 0c200eec..b6412b4e 100644 --- a/docs/public/presets/toml/plain-text-symbols.toml +++ b/docs/public/presets/toml/plain-text-symbols.toml @@ -109,6 +109,9 @@ symbol = "memory " [meson] symbol = "meson " +[nats] +symbol = "nats " + [nim] symbol = "nim " diff --git a/src/configs/mod.rs b/src/configs/mod.rs index 7e7aa263..6f15638e 100644 --- a/src/configs/mod.rs +++ b/src/configs/mod.rs @@ -55,6 +55,7 @@ pub mod localip; pub mod lua; pub mod memory_usage; pub mod meson; +pub mod nats; pub mod nim; pub mod nix_shell; pub mod nodejs; @@ -218,6 +219,8 @@ pub struct FullConfig<'a> { #[serde(borrow)] meson: meson::MesonConfig<'a>, #[serde(borrow)] + nats: nats::NatsConfig<'a>, + #[serde(borrow)] nim: nim::NimConfig<'a>, #[serde(borrow)] nix_shell: nix_shell::NixShellConfig<'a>, diff --git a/src/configs/nats.rs b/src/configs/nats.rs new file mode 100644 index 00000000..6404357a --- /dev/null +++ b/src/configs/nats.rs @@ -0,0 +1,26 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Deserialize, Serialize)] +#[cfg_attr( + feature = "config-schema", + derive(schemars::JsonSchema), + schemars(deny_unknown_fields) +)] +#[serde(default)] +pub struct NatsConfig<'a> { + pub format: &'a str, + pub symbol: &'a str, + pub style: &'a str, + pub disabled: bool, +} + +impl<'a> Default for NatsConfig<'a> { + fn default() -> Self { + NatsConfig { + format: "[$symbol($name )]($style)", + symbol: "✉️ ", + style: "bold purple", + disabled: true, + } + } +} diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index f1cc181c..8acbbe11 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -37,6 +37,7 @@ pub const PROMPT_ORDER: &[&str] = &[ "shlvl", "singularity", "kubernetes", + "nats", "directory", "vcsh", "fossil_branch", diff --git a/src/module.rs b/src/module.rs index c067aa3b..ae8babca 100644 --- a/src/module.rs +++ b/src/module.rs @@ -60,6 +60,7 @@ pub const ALL_MODULES: &[&str] = &[ "lua", "memory_usage", "meson", + "nats", "nim", "nix_shell", "nodejs", diff --git a/src/modules/mod.rs b/src/modules/mod.rs index e842b494..60eed9e5 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -52,6 +52,7 @@ mod localip; mod lua; mod memory_usage; mod meson; +mod nats; mod nim; mod nix_shell; mod nodejs; @@ -162,6 +163,7 @@ pub fn handle<'a>(module: &str, context: &'a Context) -> Option> { "lua" => lua::module(context), "memory_usage" => memory_usage::module(context), "meson" => meson::module(context), + "nats" => nats::module(context), "nim" => nim::module(context), "nix_shell" => nix_shell::module(context), "nodejs" => nodejs::module(context), @@ -285,6 +287,7 @@ pub fn description(module: &str) -> &'static str { "meson" => { "The current Meson environment, if $MESON_DEVENV and $MESON_PROJECT_NAME are set" } + "nats" => "The current NATS context", "nim" => "The currently installed version of Nim", "nix_shell" => "The nix-shell environment", "nodejs" => "The currently installed version of NodeJS", diff --git a/src/modules/nats.rs b/src/modules/nats.rs new file mode 100644 index 00000000..4a6b9076 --- /dev/null +++ b/src/modules/nats.rs @@ -0,0 +1,89 @@ +use super::{Context, Module, ModuleConfig}; +use serde_json as json; + +use crate::configs::nats::NatsConfig; +use crate::formatter::StringFormatter; + +pub fn module<'a>(context: &'a Context) -> Option> { + let mut module = context.new_module("nats"); + let config = NatsConfig::try_load(module.config); + + if config.disabled { + return None; + }; + + let ctx_str = context + .exec_cmd("nats", &["context", "info", "--json"])? + .stdout; + let nats_context: json::Value = json::from_str(&ctx_str) + .map_err(|e| { + log::warn!("Error parsing nats context JSON: {}\n", e); + drop(e); + }) + .ok()?; + + let parsed = StringFormatter::new(config.format).and_then(|formatter| { + formatter + .map_meta(|var, _| match var { + "symbol" => Some(config.symbol), + _ => None, + }) + .map_style(|variable| match variable { + "style" => Some(Ok(config.style)), + _ => None, + }) + .map(|variable| match variable { + "name" => Some(Ok(nats_context.get("name")?.as_str()?)), + _ => None, + }) + .parse(None, Some(context)) + }); + + module.set_segments(match parsed { + Ok(segments) => segments, + Err(error) => { + log::warn!("Error in module `nats`:\n{}", error); + return None; + } + }); + + Some(module) +} + +#[cfg(test)] +mod tests { + use nu_ansi_term::Color; + use std::io; + + use crate::test::ModuleRenderer; + + #[test] + fn show_context() -> io::Result<()> { + let actual = ModuleRenderer::new("nats") + .config(toml::toml! { + [nats] + format = "[$symbol$name](bold purple)" + symbol = "" + disabled = false + }) + .collect(); + let expected = Some(format!("{}", Color::Purple.bold().paint("localhost"))); + assert_eq!(expected, actual); + Ok(()) + } + + #[test] + fn test_with_symbol() -> io::Result<()> { + let actual = ModuleRenderer::new("nats") + .config(toml::toml! { + [nats] + format = "[$symbol$name](bold red)" + symbol = "✉️ " + disabled = false + }) + .collect(); + let expected = Some(format!("{}", Color::Red.bold().paint("✉️ localhost"))); + assert_eq!(expected, actual); + Ok(()) + } +} diff --git a/src/utils.rs b/src/utils.rs index d6b56e6c..7bd1ee97 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -315,6 +315,10 @@ Elixir 1.10 (compiled with Erlang/OTP 22)\n", stdout: String::from("LuaJIT 2.0.5 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/\n"), stderr: String::default(), }), + "nats context info --json" => Some(CommandOutput{ + stdout: String::from("{\"name\":\"localhost\",\"url\":\"nats://localhost:4222\"}"), + stderr: String::default(), + }), "nim --version" => Some(CommandOutput { stdout: String::from( "\ From de2c4a63553568adcba95432acfbe36080cc6be8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 19:06:13 +0200 Subject: [PATCH 293/651] chore(master): release 1.19.0 (#5896) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 710eb3c8..78d6c1a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [1.19.0](https://github.com/starship/starship/compare/v1.18.2...v1.19.0) (2024-05-15) + + +### Features + +* **container:** show name if available ([#5195](https://github.com/starship/starship/issues/5195)) ([3e3f18e](https://github.com/starship/starship/commit/3e3f18ef277c9bb3db9f60c964f280c7d981102c)) +* **gleam:** Add Gleam module ([#5886](https://github.com/starship/starship/issues/5886)) ([34a8f7e](https://github.com/starship/starship/commit/34a8f7e62845fd66df3f6f9003cb850f2b0d9bc5)) +* **k8s:** Add detect env vars option ([#4488](https://github.com/starship/starship/issues/4488)) ([e3b5dff](https://github.com/starship/starship/commit/e3b5dff3524608328de6ee3cbb390f8c640b0ce0)) +* **nats:** Add NATS Context ([#5900](https://github.com/starship/starship/issues/5900)) ([5facd85](https://github.com/starship/starship/commit/5facd85da56d28e74878286923f148bc468f71c3)) +* **odin:** Add Odin Lang module ([#5873](https://github.com/starship/starship/issues/5873)) ([335c514](https://github.com/starship/starship/commit/335c514e9ee5fa5bc8a8294b4804ddf198504b97)) +* **username:** add aliases option ([#5855](https://github.com/starship/starship/issues/5855)) ([9c1eadd](https://github.com/starship/starship/commit/9c1eaddae154daed9e1d00faac414586f7920013)) + + +### Bug Fixes + +* **bash:** fix handling of the preserved DEBUG trap (used in Bash <= 4.3) ([#5908](https://github.com/starship/starship/issues/5908)) ([fe1a8df](https://github.com/starship/starship/commit/fe1a8df6fa5121cc83b288cf054a8ed16631d335)) +* **bash:** use `eval` instead of a procsub for the POSIX mode ([#5020](https://github.com/starship/starship/issues/5020)) ([0f859e8](https://github.com/starship/starship/commit/0f859e8b61c8ada354f4ea4147fb8752dca02c51)) +* **bash:** use eval instead of a procsub for the POSIX mode ([0f859e8](https://github.com/starship/starship/commit/0f859e8b61c8ada354f4ea4147fb8752dca02c51)) +* **bun:** change default icon ([#5880](https://github.com/starship/starship/issues/5880)) ([be4e97c](https://github.com/starship/starship/commit/be4e97c2d9169cbf0bc30e271dd4ba07530dc46f)) +* **scala:** use scala-cli first to avoid timeout ([2221a88](https://github.com/starship/starship/commit/2221a88f5ada124c657a265b878e37be47998766)) +* **xonsh:** remove `| cat` workaround from xonsh init ([#5113](https://github.com/starship/starship/issues/5113)) ([de5b7f0](https://github.com/starship/starship/commit/de5b7f041a8c88ecf912b3be3b32d70f76518348)) + + +### Performance Improvements + +* **scala:** use scala-cli first to avoid timeout ([#5952](https://github.com/starship/starship/issues/5952)) ([2221a88](https://github.com/starship/starship/commit/2221a88f5ada124c657a265b878e37be47998766)) + ## [1.18.2](https://github.com/starship/starship/compare/v1.18.1...v1.18.2) (2024-03-29) diff --git a/Cargo.lock b/Cargo.lock index 0f3895c2..6e66f77c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2779,7 +2779,7 @@ checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "starship" -version = "1.18.2" +version = "1.19.0" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index acb4ce50..ea36bc0c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starship" -version = "1.18.2" +version = "1.19.0" authors = ["Starship Contributors"] build = "build.rs" categories = ["command-line-utilities"] From 1e69606360a724a653920cc84a9b08cce84113bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 16:47:19 +0000 Subject: [PATCH 294/651] build(deps): update rust crate serde to 1.0.202 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6e66f77c..f41f7970 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2589,18 +2589,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.201" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.201" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index ea36bc0c..9e9f376d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.23" -serde = { version = "1.0.201", features = ["derive"] } +serde = { version = "1.0.202", features = ["derive"] } serde_json = "1.0.117" sha1 = "0.10.6" shadow-rs = { version = "0.27.1", default-features = false } From 4ab10c8d10bcfe933316e51d49d5fb4e0a9d874a Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Thu, 16 May 2024 02:07:00 +0900 Subject: [PATCH 295/651] docs(i18n): new Crowdin updates (#5898) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations no-nerd-font.md (Japanese) * New translations no-empty-icons.md (Japanese) * New translations gruvbox-rainbow.md (Japanese) * New translations jetpack.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Japanese) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Spanish) * New translations readme.md (Japanese) * New translations readme.md (Russian) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Vietnamese) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (Sorani (Kurdish)) * New translations readme.md (French) * New translations readme.md (French) * New translations readme.md (Spanish) * New translations readme.md (Arabic) * New translations readme.md (German) * New translations readme.md (Italian) * New translations readme.md (Japanese) * New translations readme.md (Korean) * New translations readme.md (Dutch) * New translations readme.md (Norwegian) * New translations readme.md (Polish) * New translations readme.md (Portuguese) * New translations readme.md (Russian) * New translations readme.md (Turkish) * New translations readme.md (Ukrainian) * New translations readme.md (Chinese Simplified) * New translations readme.md (Chinese Traditional) * New translations readme.md (Vietnamese) * New translations readme.md (Portuguese, Brazilian) * New translations readme.md (Indonesian) * New translations readme.md (Bengali) * New translations readme.md (Sorani (Kurdish)) --- docs/ar-SA/README.md | 14 + docs/ar-SA/advanced-config/README.md | 14 +- docs/ar-SA/config/README.md | 115 +- docs/ar-SA/faq/README.md | 2 +- docs/ar-SA/guide/README.md | 2 + docs/ar-SA/installing/README.md | 2 +- docs/bn-BD/README.md | 14 + docs/bn-BD/advanced-config/README.md | 14 +- docs/bn-BD/config/README.md | 115 +- docs/bn-BD/faq/README.md | 2 +- docs/bn-BD/guide/README.md | 2 + docs/bn-BD/installing/README.md | 2 +- docs/ckb-IR/README.md | 14 + docs/ckb-IR/advanced-config/README.md | 14 +- docs/ckb-IR/config/README.md | 115 +- docs/ckb-IR/faq/README.md | 2 +- docs/ckb-IR/guide/README.md | 2 + docs/ckb-IR/installing/README.md | 2 +- docs/de-DE/README.md | 14 + docs/de-DE/advanced-config/README.md | 14 +- docs/de-DE/config/README.md | 115 +- docs/de-DE/faq/README.md | 2 +- docs/de-DE/guide/README.md | 2 + docs/de-DE/installing/README.md | 2 +- docs/es-ES/README.md | 14 + docs/es-ES/advanced-config/README.md | 14 +- docs/es-ES/config/README.md | 115 +- docs/es-ES/faq/README.md | 2 +- docs/es-ES/guide/README.md | 2 + docs/es-ES/installing/README.md | 2 +- docs/fr-FR/README.md | 14 + docs/fr-FR/advanced-config/README.md | 14 +- docs/fr-FR/config/README.md | 115 +- docs/fr-FR/faq/README.md | 2 +- docs/fr-FR/guide/README.md | 2 + docs/fr-FR/installing/README.md | 2 +- docs/id-ID/README.md | 14 + docs/id-ID/advanced-config/README.md | 14 +- docs/id-ID/config/README.md | 117 +- docs/id-ID/faq/README.md | 2 +- docs/id-ID/guide/README.md | 2 + docs/id-ID/installing/README.md | 2 +- docs/it-IT/README.md | 14 + docs/it-IT/advanced-config/README.md | 14 +- docs/it-IT/config/README.md | 115 +- docs/it-IT/faq/README.md | 2 +- docs/it-IT/guide/README.md | 2 + docs/it-IT/installing/README.md | 2 +- docs/ja-JP/README.md | 14 + docs/ja-JP/advanced-config/README.md | 76 +- docs/ja-JP/config/README.md | 1263 ++++++++++++---------- docs/ja-JP/faq/README.md | 18 +- docs/ja-JP/guide/README.md | 6 +- docs/ja-JP/installing/README.md | 4 +- docs/ja-JP/migrating-to-0.45.0/README.md | 2 +- docs/ja-JP/presets/README.md | 18 +- docs/ja-JP/presets/gruvbox-rainbow.md | 8 +- docs/ja-JP/presets/jetpack.md | 14 +- docs/ja-JP/presets/no-empty-icons.md | 2 +- docs/ja-JP/presets/no-nerd-font.md | 6 +- docs/ko-KR/README.md | 14 + docs/ko-KR/advanced-config/README.md | 14 +- docs/ko-KR/config/README.md | 115 +- docs/ko-KR/faq/README.md | 2 +- docs/ko-KR/guide/README.md | 2 + docs/ko-KR/installing/README.md | 2 +- docs/nl-NL/README.md | 14 + docs/nl-NL/advanced-config/README.md | 14 +- docs/nl-NL/config/README.md | 115 +- docs/nl-NL/faq/README.md | 2 +- docs/nl-NL/guide/README.md | 2 + docs/nl-NL/installing/README.md | 2 +- docs/no-NO/README.md | 14 + docs/no-NO/advanced-config/README.md | 14 +- docs/no-NO/config/README.md | 115 +- docs/no-NO/faq/README.md | 2 +- docs/no-NO/guide/README.md | 2 + docs/no-NO/installing/README.md | 2 +- docs/pl-PL/README.md | 14 + docs/pl-PL/advanced-config/README.md | 14 +- docs/pl-PL/config/README.md | 115 +- docs/pl-PL/faq/README.md | 2 +- docs/pl-PL/guide/README.md | 2 + docs/pl-PL/installing/README.md | 2 +- docs/pt-BR/README.md | 14 + docs/pt-BR/advanced-config/README.md | 14 +- docs/pt-BR/config/README.md | 115 +- docs/pt-BR/faq/README.md | 2 +- docs/pt-BR/guide/README.md | 2 + docs/pt-BR/installing/README.md | 2 +- docs/pt-PT/README.md | 14 + docs/pt-PT/advanced-config/README.md | 14 +- docs/pt-PT/config/README.md | 115 +- docs/pt-PT/faq/README.md | 2 +- docs/pt-PT/guide/README.md | 2 + docs/pt-PT/installing/README.md | 2 +- docs/ru-RU/README.md | 14 + docs/ru-RU/advanced-config/README.md | 14 +- docs/ru-RU/config/README.md | 115 +- docs/ru-RU/faq/README.md | 2 +- docs/ru-RU/guide/README.md | 2 + docs/ru-RU/installing/README.md | 2 +- docs/tr-TR/README.md | 14 + docs/tr-TR/advanced-config/README.md | 14 +- docs/tr-TR/config/README.md | 115 +- docs/tr-TR/faq/README.md | 2 +- docs/tr-TR/guide/README.md | 2 + docs/tr-TR/installing/README.md | 2 +- docs/uk-UA/README.md | 14 + docs/uk-UA/advanced-config/README.md | 16 +- docs/uk-UA/config/README.md | 145 ++- docs/uk-UA/faq/README.md | 4 +- docs/uk-UA/guide/README.md | 2 + docs/uk-UA/installing/README.md | 2 +- docs/vi-VN/README.md | 14 + docs/vi-VN/advanced-config/README.md | 14 +- docs/vi-VN/config/README.md | 115 +- docs/vi-VN/faq/README.md | 4 +- docs/vi-VN/guide/README.md | 2 + docs/vi-VN/installing/README.md | 2 +- docs/zh-CN/README.md | 14 + docs/zh-CN/advanced-config/README.md | 14 +- docs/zh-CN/config/README.md | 129 ++- docs/zh-CN/faq/README.md | 2 +- docs/zh-CN/guide/README.md | 2 + docs/zh-CN/installing/README.md | 2 +- docs/zh-TW/README.md | 14 + docs/zh-TW/advanced-config/README.md | 14 +- docs/zh-TW/config/README.md | 115 +- docs/zh-TW/faq/README.md | 2 +- docs/zh-TW/guide/README.md | 2 + docs/zh-TW/installing/README.md | 2 +- 132 files changed, 3544 insertions(+), 919 deletions(-) diff --git a/docs/ar-SA/README.md b/docs/ar-SA/README.md index 28884f71..9c93ad26 100644 --- a/docs/ar-SA/README.md +++ b/docs/ar-SA/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/ar-SA/installing/README.md b/docs/ar-SA/installing/README.md index 94165355..b8c10edd 100644 --- a/docs/ar-SA/installing/README.md +++ b/docs/ar-SA/installing/README.md @@ -45,7 +45,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.term emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### احصل على ملفات الباينري diff --git a/docs/bn-BD/README.md b/docs/bn-BD/README.md index a9d66601..862410bc 100644 --- a/docs/bn-BD/README.md +++ b/docs/bn-BD/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/bn-BD/installing/README.md b/docs/bn-BD/installing/README.md index 3004e397..a5ad88c0 100644 --- a/docs/bn-BD/installing/README.md +++ b/docs/bn-BD/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/ckb-IR/README.md b/docs/ckb-IR/README.md index 13fa363b..60607286 100644 --- a/docs/ckb-IR/README.md +++ b/docs/ckb-IR/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: یەکێ لە Promptـە شێڵ نەناسەکان" description: 'Starship: یەکێ لە promptـە سوکەڵە، خێرا، و بێسنور دڵخوازکراوەکان بۆ هەر شێڵێک! ئەو زانیارییانە پشان دەدات کە پێویستە، لەوکاتەیا بە ئارامی و سوکەڵەیی ئەمێنێتەوە. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell.' --- + +


    ئایکۆنی مووشەکی Starship diff --git a/docs/ckb-IR/installing/README.md b/docs/ckb-IR/installing/README.md index b11ace61..d7fe7b29 100644 --- a/docs/ckb-IR/installing/README.md +++ b/docs/ckb-IR/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/de-DE/README.md b/docs/de-DE/README.md index 4230f5ab..cf87d949 100644 --- a/docs/de-DE/README.md +++ b/docs/de-DE/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship ist eine minimale, super schnelle, und extrem anpassbare Prompt für jede Shell! Sie zeigt die Information, die man benötigt an, während sie schnell und minimal bleibt. Schnell-Installation verfügbar für Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, und PowerShell. --- + +


    Starship Raketen-Symbol diff --git a/docs/de-DE/installing/README.md b/docs/de-DE/installing/README.md index 5779d264..96d044f1 100644 --- a/docs/de-DE/installing/README.md +++ b/docs/de-DE/installing/README.md @@ -45,7 +45,7 @@ Unter Funtoo Linux kann starship von [core-kit](https://github.com/funtoo/core-k emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Das Binary holen diff --git a/docs/es-ES/README.md b/docs/es-ES/README.md index c2a6ab56..e547cf92 100644 --- a/docs/es-ES/README.md +++ b/docs/es-ES/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: el prompt multi-intérprete" description: '¡Starship es el prompt minimalista, ultrarápido e infinitamente personalizable para cualquier intérprete de comandos! Muestra la información que necesitas, a la par que es elegante y minimalista. Instalación rápida disponible para Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, y PowerShell.' --- + +


    Starship rocket icon diff --git a/docs/es-ES/installing/README.md b/docs/es-ES/installing/README.md index 5f457237..eb49b9dc 100644 --- a/docs/es-ES/installing/README.md +++ b/docs/es-ES/installing/README.md @@ -45,7 +45,7 @@ En Funtoo Linux, Starship puede instalarse desde [core-kit](https://github.com/f emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Obtener el binario diff --git a/docs/fr-FR/README.md b/docs/fr-FR/README.md index a7557be9..7e843126 100644 --- a/docs/fr-FR/README.md +++ b/docs/fr-FR/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship : Invite Multi-Shell" description: Starship est une invite minimaliste, ultra-rapide et hautement personnalisable pour n'importe quel shell ! Montre les informations dont vous avez besoin tout en restant élégante et minimaliste. Installation rapide disponible pour Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, et PowerShell. --- + +


    Icône de roquette de Starship diff --git a/docs/fr-FR/installing/README.md b/docs/fr-FR/installing/README.md index acb135dc..046314b4 100644 --- a/docs/fr-FR/installing/README.md +++ b/docs/fr-FR/installing/README.md @@ -45,7 +45,7 @@ Sur Funtoo Linux, starship peut être installé à partir de [core-kit](https:// emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Obtention du binaire diff --git a/docs/id-ID/README.md b/docs/id-ID/README.md index 1bf25cd3..8e6b7bd1 100644 --- a/docs/id-ID/README.md +++ b/docs/id-ID/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Prompt Lintas Shell" description: Starship merupakan sebuah prompt yang minimal, super cepat, dan sangat bisa untuk dikustomisasi untuk shell apapun! Bisa menampilkan informasi yang kamu butuhkan, namun tetap bisa tampil dengan ramping dan minimal. Instalasi sederhana tersedia untuk Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, dan PowerShell. --- + +


    Ikon roket Starship diff --git a/docs/id-ID/installing/README.md b/docs/id-ID/installing/README.md index f0828d9b..bbcf99e8 100644 --- a/docs/id-ID/installing/README.md +++ b/docs/id-ID/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/it-IT/README.md b/docs/it-IT/README.md index 85e6f099..da033b4c 100644 --- a/docs/it-IT/README.md +++ b/docs/it-IT/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship è il prompt minimalista, super veloce ed estremamente personalizzabile per qualsiasi shell! Mostra le informazioni di cui hai bisogno, rimanendo elegante e minimale. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/it-IT/installing/README.md b/docs/it-IT/installing/README.md index 4fe9a47c..4bffd43d 100644 --- a/docs/it-IT/installing/README.md +++ b/docs/it-IT/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Ottenere il Binario diff --git a/docs/ja-JP/README.md b/docs/ja-JP/README.md index 9c921c31..d59813b8 100644 --- a/docs/ja-JP/README.md +++ b/docs/ja-JP/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship はミニマルで、非常に高速で、カスタマイズ性の高い、あらゆるシェルのためのプロンプトです! ミニマルかつ洗練された形で、あなたに必要な情報を表示します。 Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, PowerShellで簡単に利用できます。 --- + +

    このモジュールは、どのようにディレクトリを表示するかについての高度なオプションをいくつか持っています。 -| Advanced Option | デフォルト | 説明 | -| --------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `substitutions` | | A table of substitutions to be made to the path. | -| `fish_style_pwd_dir_length` | `0` | fish shellのpwdパスロジックを適用するときに使用する文字数です。 | -| `use_logical_path` | `true` | If `true` render the logical path sourced from the shell via `PWD` or `--logical-path`. If `false` instead render the physical filesystem path with symlinks resolved. | +| 詳細設定 | デフォルト | 説明 | +| --------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------- | +| `substitutions` | | パスに適用される置換の辞書。 | +| `fish_style_pwd_dir_length` | `0` | fish shellのpwdパスロジックを適用するときに使用する文字数です。 | +| `use_logical_path` | `true` | `true` の場合、シェルによって `PWD` または `--logical-path` を通して指定される起点からの論理パスを表示します。 `false` の場合、代わりにシンボリックリンクを解決したファイルシステム上の物理パスを表示します。 | -`substitutions` allows you to define arbitrary replacements for literal strings that occur in the path, for example long network prefixes or development directories (i.e. Java). Note that this will disable the fish style PWD. +`substitutions` によってパスに含まれる固定文字列に対する任意の置換を定義できます。固定文字列の例として、長いネットワークプレフィックスや (Java の) 開発ディレクトリが考えられます。 ※これは fish 形式の PWD を無効化します。 ```toml [directory.substitutions] @@ -1123,7 +1125,7 @@ When using the `fish_style_pwd_dir_length` option, instead of hiding the path th 'src/com/long/java/path' = 'mypath' ``` -`fish_style_pwd_dir_length` interacts with the standard truncation options in a way that can be surprising at first: if it's non-zero, the components of the path that would normally be truncated are instead displayed with that many characters. For example, the path `/built/this/city/on/rock/and/roll`, which would normally be displayed as `rock/and/roll`, would be displayed as `/b/t/c/o/rock/and/roll` with `fish_style_pwd_dir_length = 1`--the path components that would normally be removed are displayed with a single character. For `fish_style_pwd_dir_length = 2`, it would be `/bu/th/ci/on/rock/and/roll`. +`fish_style_pwd_dir_length` は標準の短縮設定と組み合わさって、一見して意外な結果をもたらすかもしれません。非ゼロの値の場合、通常省略されるディレクトリ名がその文字数だけ表示されます。 例えばパス `/built/this/city/on/rock/and/roll` は通常 `rock/and/roll` と表示されますが、 `fish_style_pwd_dir_length = 1` の時は `/b/t/c/o/rock/and/roll` と表示されます。つまり、通常削除されるパスコンポーネントが代わりに一文字で表示されます。 `fish_style_pwd_dir_length = 2`の場合、 `/bu/th/ci/on/rock/and/roll` になります。
    @@ -1163,34 +1165,34 @@ truncation_symbol = '…/' ## Direnv -The `direnv` module shows the status of the current rc file if one is present. The status includes the path to the rc file, whether it is loaded, and whether it has been allowed by `direnv`. +`direnv` モジュールは、もし存在すれば、現在の rc ファイルの状態を示します。 状態として rc ファイルへのパス、ロードされているかどうか、および `direnv` によって許可されているかどうかを含みます。 ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | -------------------------------------- | ----------------------------------------------------- | -| `format` | `'[$symbol$loaded/$allowed]($style) '` | module のフォーマットです。 | -| `symbol` | `'direnv '` | The symbol used before displaying the direnv context. | -| `style` | `'bold orange'` | モジュールのスタイルです。 | -| `disabled` | `true` | Disables the `direnv` module. | -| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `['.envrc']` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `allowed_msg` | `'allowed'` | The message displayed when an rc file is allowed. | -| `not_allowed_msg` | `'not allowed'` | The message displayed when an rc file is not_allowed. | -| `denied_msg` | `'denied'` | The message displayed when an rc file is denied. | -| `loaded_msg` | `'loaded'` | The message displayed when an rc file is loaded. | -| `unloaded_msg` | `'not loaded'` | The message displayed when an rc file is not loaded. | +| オプション | デフォルト | 説明 | +| ------------------- | -------------------------------------- | ------------------------------------------ | +| `format` | `'[$symbol$loaded/$allowed]($style) '` | module のフォーマットです。 | +| `symbol` | `'direnv '` | Direnv コンテキストの前に表示される記号です。 | +| `style` | `'bold orange'` | モジュールのスタイルです。 | +| `disabled` | `true` | `Direnv`モジュールを無効にします。 | +| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['.envrc']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `allowed_msg` | `'allowed'` | Rcファイルが許可されているとき (allowed) に表示されるメッセージです。 | +| `not_allowed_msg` | `'not allowed'` | Rcファイルが不許可のとき (not_allowed) に表示されるメッセージです。 | +| `denied_msg` | `'denied'` | Rcファイルが拒否されているとき (denied) に表示されるメッセージです。 | +| `loaded_msg` | `'loaded'` | Rcファイルがロードされているときに表示されるメッセージです。 | +| `unloaded_msg` | `'not loaded'` | Rcファイルがロードされていないときに表示されるメッセージです。 | ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | ------------------- | --------------------------------------- | -| loaded | `loaded` | Whether the current rc file is loaded. | -| allowed | `denied` | Whether the current rc file is allowed. | -| rc_path | `/home/test/.envrc` | The current rc file path. | -| symbol | | オプション `symbol` の値をミラーする. | -| style\* | `red bold` | オプション `style` の値をミラーする. | +| 変数 | 設定例 | 説明 | +| --------- | ------------------- | ----------------------- | +| loaded | `loaded` | 現在のrcファイルがロードされているかどうか。 | +| allowed | `denied` | 現在のrcファイルが許可されているかどうか。 | +| rc_path | `/home/test/.envrc` | 現在の rc ファイルパス。 | +| symbol | | オプション `symbol` の値のミラー。 | +| style\* | `red bold` | オプション `style` の値のミラー。 | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -1386,7 +1388,7 @@ format = 'via [ $version](cyan bold) ' ::: tip -The order in which env_var modules are shown can be individually set by including `${env_var.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `env_var` module will simply show all env_var modules in the order they were defined. +env_var モジュールが表示される順序は、`${env_var.foo}` (ドットが含まれるので `${...}` を使う必要があります) をトップレベルの `format` に入れることで個別に設定できます。 既定では、 `env_var` モジュールは、単にすべての env_var モジュールを定義順で表示します。 ::: @@ -1407,14 +1409,14 @@ default = 'unknown user' ### オプション -| オプション | デフォルト | 説明 | -| ---------- | ------------------------------ | ---------------------------------------------------------------------------- | -| `symbol` | `""` | 環境変数を表示する前に使用される記号です。 | -| `variable` | | 表示される環境変数です。 | -| `default` | | 上のvariableが定義されていない場合に表示されるデフォルトの値です。 | -| `format` | `"with [$env_value]($style) "` | module のフォーマットです。 | -| `説明` | `""` | The description of the module that is shown when running `starship explain`. | -| `disabled` | `false` | `env_var`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ------------- | ------------------------------ | -------------------------------------- | +| `symbol` | `""` | 環境変数を表示する前に使用される記号です。 | +| `variable` | | 表示される環境変数です。 | +| `default` | | 上のvariableが定義されていない場合に表示されるデフォルトの値です。 | +| `format` | `"with [$env_value]($style) "` | module のフォーマットです。 | +| `description` | `""` | `starship explain` 実行の際に表示されるモジュールの説明。 | +| `disabled` | `false` | `env_var`モジュールを無効にします。 | ### 変数 @@ -1489,28 +1491,28 @@ format = 'via [e $version](bold red) ' ## Fennel -The `fennel` module shows the currently installed version of [Fennel](https://fennel-lang.org). デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 +`fennel`モジュールは、現在インストールされている[Fennel](https://fennel-lang.org)のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 -- The current directory contains a file with the `.fnl` extension +- カレントディレクトリに拡張子 `.fnl` のファイルが含まれている ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | ------------------------------------ | -------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | -| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'🧅 '` | The symbol used before displaying the version of fennel. | -| `style` | `'bold green'` | モジュールのスタイルです。 | -| `detect_extensions` | `['fnl']` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `disabled` | `false` | Disables the `fennel` module. | +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------------ | ------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'🧅 '` | Fennel のバージョンの前に表示される記号です。 | +| `style` | `'bold green'` | モジュールのスタイルです。 | +| `detect_extensions` | `['fnl']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `disabled` | `false` | `fennel`モジュールを無効にします。 | ### 変数 | 変数 | 設定例 | 説明 | | --------- | -------- | ----------------------- | -| version | `v1.2.1` | The version of `fennel` | +| version | `v1.2.1` | `fennel`のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -1556,26 +1558,26 @@ AA -------------------------------------------- BB ----------------------------- ## Fossil Branch -The `fossil_branch` module shows the name of the active branch of the check-out in your current directory. +`fossil_branch`モジュールは、現在のディレクトリにあるチェックアウトのアクティブなブランチ名を表示します。 ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | -------------------------------- | ---------------------------------------------------------------------------------- | -| `format` | `'on [$symbol$branch]($style) '` | module のフォーマットです。 Use `'$branch'` to refer to the current branch name. | -| `symbol` | `' '` | The symbol used before the branch name of the check-out in your current directory. | -| `style` | `'bold purple'` | モジュールのスタイルです。 | -| `truncation_length` | `2^63 - 1` | Truncates a Fossil branch name to `N` graphemes | -| `truncation_symbol` | `'…'` | ブランチ名切り捨てられていることを示すための記号です。 You can use `''` for no symbol. | -| `disabled` | `true` | Disables the `fossil_branch` module. | +| オプション | デフォルト | 説明 | +| ------------------- | -------------------------------- | ----------------------------------------------------- | +| `format` | `'on [$symbol$branch]($style) '` | module のフォーマットです。 現在のブランチ名を参照するには、`'$branch'` を使用します。 | +| `symbol` | `' '` | 現在のディレクトリのチェックアウトのブランチ名の前に使用されるシンボルです。 | +| `style` | `'bold purple'` | モジュールのスタイルです。 | +| `truncation_length` | `2^63 - 1` | Fossil のブランチ名を `N` 書記素までで切り捨てます。 | +| `truncation_symbol` | `'…'` | ブランチ名切り捨てられていることを示すための記号です。 `''` で記号なしにできます。 | +| `disabled` | `true` | `fossil_branch` モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | ------- | ------------------------ | -| branch | `trunk` | The active Fossil branch | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | ------- | ----------------------- | +| branch | `trunk` | アクティブな Fossil ブランチ | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -1592,26 +1594,26 @@ truncation_symbol = '' ## Fossil Metrics -The `fossil_metrics` module will show the number of added and deleted lines in the check-out in your current directory. At least v2.14 (2021-01-20) of Fossil is required. +`fossil_branch` モジュールは、現在のディレクトリのチェックアウトにおける追加・削除された行数を表示します。 少なくとも Fossil バージョン 2.14 (2021-01-20) が必要です。 ### オプション -| オプション | デフォルト | 説明 | -| -------------------- | ------------------------------------------------------------ | ------------------------------------- | -| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | module のフォーマットです。 | -| `added_style` | `'bold green'` | The style for the added count. | -| `deleted_style` | `'bold red'` | The style for the deleted count. | -| `only_nonzero_diffs` | `true` | Render status only for changed items. | -| `disabled` | `true` | Disables the `fossil_metrics` module. | +| オプション | デフォルト | 説明 | +| -------------------- | ------------------------------------------------------------ | ------------------------------ | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | module のフォーマットです。 | +| `added_style` | `'bold green'` | 追加行数のスタイルです。 | +| `deleted_style` | `'bold red'` | 削除行数のスタイルです。 | +| `only_nonzero_diffs` | `true` | 変更された項目についてのみステータスを表示します。 | +| `disabled` | `true` | `fossil_metrics` モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| ----------------- | --- | ------------------------------------------- | -| added | `1` | The current number of added lines | -| deleted | `2` | The current number of deleted lines | -| added_style\* | | Mirrors the value of option `added_style` | -| deleted_style\* | | Mirrors the value of option `deleted_style` | +| 変数 | 設定例 | 説明 | +| ----------------- | --- | ------------------------------- | +| added | `1` | 現在の追加行数です。 | +| deleted | `2` | 現在の削除行数です。 | +| added_style\* | | オプション `added_style` の値を反映します。 | +| deleted_style\* | | オプション `deleted_style` の値を反映します。 | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -1629,19 +1631,19 @@ format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' `gcloud` モジュールは、 [`gcloud`](https://cloud.google.com/sdk/gcloud) CLIの現在の設定が表示されます。 これは `~/.config/gcloud/active_config` ファイルと `~/.config/gcloud/configurations/config_{CONFIG NAME}` ファイルと `CLOUDSDK_CONFIG` 環境変数に基づきます。 -When the module is enabled it will always be active, unless `detect_env_vars` has been set in which case the module will only be active when one of the environment variables has been set. +`detect_env_vars` が設定されていない限り、モジュールが有効になっているときは常に活性化します。<0>detect_env_vars が設定されている場合、何れかの環境変数が設定されているときにのみ活性化します。 ### オプション -| オプション | デフォルト | 説明 | -| ----------------- | ---------------------------------------------------------- | -------------------------------------------------------- | -| `format` | `'on [$symbol$account(@$domain)(\($region\))]($style) '` | module のフォーマットです。 | -| `symbol` | `'☁️ '` | 現在のGCPプロファイルを表示する前に表示される記号です。 | -| `region_aliases` | `{}` | GCP名に加えて表示するリージョンのエイリアスです。 | -| `project_aliases` | `{}` | GCP名に加えて表示するプロジェクトのエイリアスです。 | -| `detect_env_vars` | `[]` | Which environmental variables should trigger this module | -| `style` | `'bold blue'` | モジュールのスタイルです。 | -| `disabled` | `false` | `gcloud`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ----------------- | ---------------------------------------------------------- | ----------------------------- | +| `format` | `'on [$symbol$account(@$domain)(\($region\))]($style) '` | module のフォーマットです。 | +| `symbol` | `'☁️ '` | 現在のGCPプロファイルを表示する前に表示される記号です。 | +| `region_aliases` | `{}` | GCP名に加えて表示するリージョンのエイリアスです。 | +| `project_aliases` | `{}` | GCP名に加えて表示するプロジェクトのエイリアスです。 | +| `detect_env_vars` | `[]` | このモジュールを活性化する環境変数です。 | +| `style` | `'bold blue'` | モジュールのスタイルです。 | +| `disabled` | `false` | `gcloud`モジュールを無効にします。 | ### 変数 @@ -1707,17 +1709,17 @@ very-long-project-name = 'vlpn' ### オプション -| オプション | デフォルト | 説明 | -| -------------------- | ------------------------------------------------- | ---------------------------------------------------------------------- | -| `always_show_remote` | `false` | ローカルブランチ名と等しい場合でも、リモート追跡ブランチ名を表示します。 | -| `format` | `'on [$symbol$branch(:$remote_branch)]($style) '` | module のフォーマットです。 Use `'$branch'` to refer to the current branch name. | -| `symbol` | `' '` | gitブランチのシンボルを表すフォーマット文字列。 | -| `style` | `'bold purple'` | モジュールのスタイルです。 | -| `truncation_length` | `2^63 - 1` | Truncates a git branch to `N` graphemes. | -| `truncation_symbol` | `'…'` | ブランチ名切り捨てられていることを示すための記号です。 You can use `''` for no symbol. | -| `only_attached` | `false` | Only show the branch name when not in a detached `HEAD` state. | -| `ignore_branches` | `[]` | 表示しない名前のリスト。 Useful for 'master' or 'main'. | -| `disabled` | `false` | `git_branch`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| -------------------- | ------------------------------------------------- | ----------------------------------------------------- | +| `always_show_remote` | `false` | ローカルブランチ名と等しい場合でも、リモート追跡ブランチ名を表示します。 | +| `format` | `'on [$symbol$branch(:$remote_branch)]($style) '` | module のフォーマットです。 現在のブランチ名を参照するには、`'$branch'` を使用します。 | +| `symbol` | `' '` | gitブランチのシンボルを表すフォーマット文字列。 | +| `style` | `'bold purple'` | モジュールのスタイルです。 | +| `truncation_length` | `2^63 - 1` | gitブランチ名を `N` 書記素までで切り捨てます。 | +| `truncation_symbol` | `'…'` | ブランチ名切り捨てられていることを示すための記号です。 `''` で記号なしにできます。 | +| `only_attached` | `false` | デタッチ `HEAD` 状態にない時はブランチ名のみ表示します。 | +| `ignore_branches` | `[]` | 表示しない名前のリスト。 'master' や 'main' に対して有用です。 | +| `disabled` | `false` | `git_branch`モジュールを無効にします。 | ### 変数 @@ -1749,24 +1751,24 @@ ignore_branches = ['master', 'main'] ### オプション -| オプション | デフォルト | 説明 | -| -------------------- | ------------------------------ | ------------------------------------------------------------------------------------ | -| `commit_hash_length` | `7` | 表示される git コミットハッシュの長さ。 | -| `format` | `'[\($hash$tag\)]($style) '` | module のフォーマットです。 | -| `style` | `'bold green'` | モジュールのスタイルです。 | -| `only_detached` | `true` | detached `HEAD` 状態のときのみ git コミットハッシュを表示する | -| `tag_disabled` | `true` | `git_commit` モジュールのタグ情報の表示を無効にする。 | -| `tag_max_candidates` | `0` | How many commits to consider for tag display. The default only allows exact matches. | -| `tag_symbol` | `' 🏷 '` | 表示される情報の前に追加されるタグシンボル | -| `disabled` | `false` | `git_commit` モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| -------------------- | ------------------------------ | ----------------------------------------- | +| `commit_hash_length` | `7` | 表示される git コミットハッシュの長さ。 | +| `format` | `'[\($hash$tag\)]($style) '` | module のフォーマットです。 | +| `style` | `'bold green'` | モジュールのスタイルです。 | +| `only_detached` | `true` | detached `HEAD` 状態のときのみ git コミットハッシュを表示する | +| `tag_disabled` | `true` | `git_commit` モジュールのタグ情報の表示を無効にする。 | +| `tag_max_candidates` | `0` | タグ表示で考慮するコミットの数。 既定では完全一致のみ許可します。 | +| `tag_symbol` | `' 🏷 '` | 表示される情報の前に追加されるタグシンボル | +| `disabled` | `false` | `git_commit` モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | --------- | -------------------------------------------- | -| hash | `b703eb3` | 現在の git コミットハッシュ | -| tag | `v1.0.0` | The tag name if showing tag info is enabled. | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | --------- | ---------------------- | +| hash | `b703eb3` | 現在の git コミットハッシュ | +| tag | `v1.0.0` | タグ情報の表示が有効の場合のタグ名。 | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -1822,7 +1824,7 @@ cherry_pick = '[🍒 PICKING](bold red)' ## Git Metrics -The `git_metrics` module will show the number of added and deleted lines in the current git repository. +`git_metrics` モジュールは、現在の git リポジトリにおける追加・削除された行数を表示します。 ::: tip @@ -1832,23 +1834,23 @@ The `git_metrics` module will show the number of added and deleted lines in the ### オプション -| オプション | デフォルト | 説明 | -| -------------------- | ------------------------------------------------------------ | ------------------------------------- | -| `added_style` | `'bold green'` | The style for the added count. | -| `deleted_style` | `'bold red'` | The style for the deleted count. | -| `only_nonzero_diffs` | `true` | Render status only for changed items. | -| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | module のフォーマットです。 | -| `disabled` | `true` | Disables the `git_metrics` module. | -| `ignore_submodules` | `false` | Ignore changes to submodules | +| オプション | デフォルト | 説明 | +| -------------------- | ------------------------------------------------------------ | --------------------------- | +| `added_style` | `'bold green'` | 追加行数のスタイルです。 | +| `deleted_style` | `'bold red'` | 削除行数のスタイルです。 | +| `only_nonzero_diffs` | `true` | 変更された項目についてのみステータスを表示します。 | +| `format` | `'([+$added]($added_style) )([-$deleted]($deleted_style) )'` | module のフォーマットです。 | +| `disabled` | `true` | `git_metrics` モジュールを無効にします。 | +| `ignore_submodules` | `false` | Git サブモジュールの変更を無視します。 | ### 変数 -| 変数 | 設定例 | 説明 | -| ----------------- | --- | ------------------------------------------- | -| added | `1` | The current number of added lines | -| deleted | `2` | The current number of deleted lines | -| added_style\* | | Mirrors the value of option `added_style` | -| deleted_style\* | | Mirrors the value of option `deleted_style` | +| 変数 | 設定例 | 説明 | +| ----------------- | --- | ------------------------------- | +| added | `1` | 現在の追加行数です。 | +| deleted | `2` | 現在の削除行数です。 | +| added_style\* | | オプション `added_style` の値を反映します。 | +| deleted_style\* | | オプション `deleted_style` の値を反映します。 | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -1888,7 +1890,7 @@ WSL環境のWindowsディレクトリ(例: `/mnt/c/`以下) では、Git Status | `staged` | `'+'` | `staged`のフォーマット | | `renamed` | `'»'` | `renamed`のフォーマット | | `deleted` | `'✘'` | `deleted`のフォーマット | -| `typechanged` | `""` | The format of `typechange` | +| `typechanged` | `""` | `typechange` のフォーマット | | `style` | `'bold red'` | モジュールのスタイルです。 | | `ignore_submodules` | `false` | サブモジュールの変更を無視します。 | | `disabled` | `false` | `git_status`モジュールを無効にします。 | @@ -1898,30 +1900,30 @@ WSL環境のWindowsディレクトリ(例: `/mnt/c/`以下) では、Git Status ` format` 内では以下の変数が利用できます。 -| 変数 | 説明 | -| -------------- | ------------------------------------------------------------------------------------------------------------- | -| `all_status` | Shortcut for`$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` | -| `ahead_behind` | Displays `diverged`, `ahead`, `behind` or `up_to_date` format string based on the current status of the repo. | -| `conflicted` | Displays `conflicted` when this branch has merge conflicts. | -| `untracked` | Displays `untracked` when there are untracked files in the working directory. | -| `stashed` | Displays `stashed` when a stash exists for the local repository. | -| `modified` | Displays `modified` when there are file modifications in the working directory. | -| `staged` | Displays `staged` when a new file has been added to the staging area. | -| `renamed` | Displays `renamed` when a renamed file has been added to the staging area. | -| `deleted` | Displays `deleted` when a file's deletion has been added to the staging area. | -| `typechanged` | Displays `typechange` when a file's type has been changed in the staging area. | -| style\* | オプション `style` の値をミラーする | +| 変数 | 説明 | +| -------------- | ------------------------------------------------------------------------------------ | +| `all_status` | `$conflicted$stashed$deleted$renamed$modified$typechanged$staged$untracked` のショートカット | +| `ahead_behind` | 現在のリポジトリに応じてフォーマット文字列 `diverged`, `ahead`, `behind`, `up_to_date` の何れかを表示します。 | +| `conflicted` | このブランチにマージコンフリクトがある場合、 `conflicted` を表示します。 | +| `untracked` | 作業ディレクトリに追跡されていないファイルがある場合、 `untracked` を表示します。 | +| `stashed` | Stash がローカルリポジトリに存在する場合、 `stashed` を表示します。 | +| `modified` | 作業ディレクトリのファイルに変更がある場合に、 `modified` を表示します。 | +| `staged` | インデックスに新しく追加されたファイルがあるときに、 `staged` を表示します。 | +| `renamed` | インデックスに名前が変更されたファイルがあるときに、 `renamed` を表示します。 | +| `deleted` | インデックスに削除されたファイルがあるときに、 `deleted` を表示します。 | +| `typechanged` | インデックスにファイルタイプの変更があるときに、 `typechange` を表示します。 | +| style\* | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 -The following variables can be used in `diverged`: +` diverged` 内では以下の変数が利用できます。 -| 変数 | 説明 | -| -------------- | ---------------------------------------------- | -| `ahead_count` | Number of commits ahead of the tracking branch | -| `behind_count` | Number of commits behind the tracking branch | +| 変数 | 説明 | +| -------------- | ------------------------- | +| `ahead_count` | 追跡対象のブランチよりこちらが進んでいるコミット数 | +| `behind_count` | 追跡対象のブランチよりこちらが遅れているコミット数 | -The following variables can be used in `conflicted`, `ahead`, `behind`, `untracked`, `stashed`, `modified`, `staged`, `renamed` and `deleted`: +`conflicted`, `ahead`, `behind`, `untracked`, `stashed`, `modified`, `staged`, `renamed` および `deleted` の中で以下の変数が使えます: | 変数 | 説明 | | ------- | ------------- | @@ -1946,7 +1948,7 @@ renamed = '👅' deleted = '🗑' ``` -Show ahead/behind count of the branch being tracked +以下は、追跡対象のブランチと比べて進んでいる・遅れているコミット数を表示します。 ```toml # ~/.config/starship.toml @@ -1957,7 +1959,7 @@ diverged = '⇕⇡${ahead_count}⇣${behind_count}' behind = '⇣${count}' ``` -Use Windows Starship executable on Windows paths in WSL +以下は WSL で Windows のパスにある Windows 用の Starship 実行ファイルを使用します。 ```toml # ~/.config/starship.toml @@ -1966,6 +1968,44 @@ Use Windows Starship executable on Windows paths in WSL windows_starship = '/mnt/c/Users/username/scoop/apps/starship/current/starship.exe' ``` +## Gleam + +`gleam` モジュールは、現在インストールされている[Gleam](https://gleam.run/) のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 + +- 現在のディレクトリに`gleam.toml`ファイルが含まれている +- 現在のディレクトリに拡張子が `.gleam` のファイルが含まれている + +### オプション + +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------------ | ------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'⭐ '` | Go のシンボルを表すフォーマット文字列 | +| `detect_extensions` | `['gleam']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['gleam.toml']` | どのファイル名がこのモジュールをアクティブにするか | +| `style` | `'bold #FFAFF3'` | モジュールのスタイルです。 | +| `disabled` | `false` | `gleam` モジュールを無効にします | + +### 変数 + +| 変数 | 設定例 | 説明 | +| --------- | -------- | ----------------------- | +| version | `v1.0.0` | `gleam` のバージョン | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | + +*: この変数は、スタイル文字列の一部としてのみ使用することができます。 + +### 設定例 + +```toml +# ~/.config/starship.toml + +[gleam] +format = 'via [⭐ $version](bold red) ' +``` + ## Go `golang`モジュールは、現在インストールされている[Go](https://golang.org/)のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 @@ -1982,26 +2022,26 @@ windows_starship = '/mnt/c/Users/username/scoop/apps/starship/current/starship.e ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | -| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'🐹 '` | A format string representing the symbol of Go. | -| `detect_extensions` | `['go']` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `['go.mod', 'go.sum', 'go.work', 'glide.yaml', 'Gopkg.yml', 'Gopkg.lock', '.go-version']` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `['Godeps']` | どのフォルダーがこのモジュールをアクティブにするか | -| `style` | `'bold cyan'` | モジュールのスタイルです。 | -| `not_capable_style` | `'bold red'` | The style for the module when the go directive in the go.mod file does not match the installed Go version. | -| `disabled` | `false` | `golang`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | +| `symbol` | `'🐹 '` | Go のシンボルを表すフォーマット文字列 | +| `detect_extensions` | `['go']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['go.mod', 'go.sum', 'go.work', 'glide.yaml', 'Gopkg.yml', 'Gopkg.lock', '.go-version']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `['Godeps']` | どのフォルダーがこのモジュールをアクティブにするか | +| `style` | `'bold cyan'` | モジュールのスタイルです。 | +| `not_capable_style` | `'bold red'` | go.mod ファイル中の go ディレクティブがインストールされている Go のバージョンと一致しないときのモジュールのスタイル。 | +| `disabled` | `false` | `golang`モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| ----------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| version | `v1.12.1` | The version of `go` | -| mod_version | `1.16` | `go` version requirement as set in the go directive of `go.mod`. Will only show if the version requirement does not match the `go` version. | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| ----------- | --------- | --------------------------------------------------------------------------------- | +| version | `v1.12.1` | `go` のバージョン | +| mod_version | `1.16` | `go.mod` の go ディレクティブに設定されている `go` のバージョン要件 バージョン要件が `go` バージョンと一致しない場合にのみ表示されます。 | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -2014,7 +2054,7 @@ windows_starship = '/mnt/c/Users/username/scoop/apps/starship/current/starship.e format = 'via [🏎💨 $version](bold cyan) ' ``` -### Using `mod_version` +### `mod_version` を使用する ```toml # ~/.config/starship.toml @@ -2025,16 +2065,16 @@ format = 'via [$symbol($version )($mod_version )]($style)' ## Guix-shell -The `guix_shell` module shows the [guix-shell](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-shell.html) environment. The module will be shown when inside a guix-shell environment. +`guix_shell`モジュールは、 [guix-shell](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-shell.html) 環境を表示します。 このモジュールは、 guix-shell 環境内にあるときに表示されます。 ### オプション -| オプション | デフォルト | 説明 | -| ---------- | -------------------------- | ------------------------------------------------------ | -| `format` | `'via [$symbol]($style) '` | module のフォーマットです。 | -| `symbol` | `'🐃 '` | A format string representing the symbol of guix-shell. | -| `style` | `'yellow bold'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `guix_shell` module. | +| オプション | デフォルト | 説明 | +| ---------- | -------------------------- | ----------------------------- | +| `format` | `'via [$symbol]($style) '` | module のフォーマットです。 | +| `symbol` | `'🐃 '` | Guix-shell のシンボルを表すフォーマット文字列。 | +| `style` | `'yellow bold'` | モジュールのスタイルです。 | +| `disabled` | `false` | `guix_shell` モジュールを無効にします。 | ### 変数 @@ -2057,14 +2097,14 @@ format = 'via [🐂](yellow bold) ' ## Gradle -The `gradle` module shows the version of the [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html) currently used in the project directory. +`gradle` モジュールは、プロジェクトディレクトリで現在使用されている [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html) のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 -- The current directory contains a `gradle/wrapper/gradle-wrapper.properties` directory. -- The current directory contains a file ending with `.gradle` or `.gradle.kts`. +- カレントディレクトリに `gradle/wrapper/gradle-wrapper.properties` ディレクトリが含まれている。 +- カレントディレクトリに `.gradle` または `.gradle.kts` で終わるファイルが含まれている。 -The `gradle` module is only able to read your Gradle Wrapper version from your config file, we don't execute your wrapper, because of the security concerns. +`gradle` モジュールは、設定ファイルからしか Gradle Wrapper バージョンを読み取れません。セキュリティー上の理由で、 Starship がラッパーを実行することはありません。 ### オプション @@ -2072,19 +2112,19 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c | ------------------- | ------------------------------------ | ------------------------------------------------------ | | `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | | `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'🅶 '` | A format string representing the symbol of Gradle. | +| `symbol` | `'🅶 '` | Gradle のシンボルを表すフォーマット文字列 | | `detect_extensions` | `['gradle', 'gradle.kts']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `['gradle']` | どのフォルダーがこのモジュールをアクティブにするか | | `style` | `'bold bright-cyan'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `gradle` module. | -| `recursive` | `false` | Enables recursive finding for the `gradle` directory. | +| `disabled` | `false` | `gradle` モジュールを無効にします。 | +| `recursive` | `false` | `gradle` ディレクトリの再帰的な検索を有効にします。 | ### 変数 | 変数 | 設定例 | 説明 | | ------- | -------- | ----------------------- | -| version | `v7.5.1` | The version of `gradle` | +| version | `v7.5.1` | `gradle`のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style* | | オプション `style` の値をミラーする | @@ -2092,7 +2132,7 @@ The `gradle` module is only able to read your Gradle Wrapper version from your c ## Haskell -The `haskell` module finds the current selected GHC version and/or the selected Stack snapshot. +`haskell` モジュールは、現在選択されている GHC バージョンおよび選択されている Stack スナップショットを特定します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 @@ -2101,35 +2141,35 @@ The `haskell` module finds the current selected GHC version and/or the selected ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | ------------------------------------ | -------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | -| `symbol` | `'λ '` | A format string representing the symbol of Haskell | -| `detect_extensions` | `['hs', 'cabal', 'hs-boot']` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `['stack.yaml', 'cabal.project']` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `style` | `'bold purple'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `haskell` module. | +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------------ | -------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `symbol` | `'λ '` | Haskell の記号を表すフォーマット文字列です。 | +| `detect_extensions` | `['hs', 'cabal', 'hs-boot']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `['stack.yaml', 'cabal.project']` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `style` | `'bold purple'` | モジュールのスタイルです。 | +| `disabled` | `false` | `haskell` モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| -------------- | ----------- | --------------------------------------------------------------------------------------- | -| version | | `ghc_version` or `snapshot` depending on whether the current project is a Stack project | -| snapshot | `lts-18.12` | Currently selected Stack snapshot | -| ghc\_version | `9.2.1` | Currently installed GHC version | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| -------------- | ----------- | -------------------------------------------------------------------- | +| version | | 現在のプロジェクトが Stack プロジェクトかどうかに応じて `ghc_version` または `snapshot` を反映します。 | +| snapshot | `lts-18.12` | 現在選択されている Stack スナップショットです。 | +| ghc\_version | `9.2.1` | 現在インストールされている GHC バージョンです。 | +| symbol | | オプション `symbol` の値をミラーします。 | +| style\* | | オプション `style` の値をミラーします。 | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 ## Haxe -The `haxe` module shows the currently installed version of [Haxe](https://haxe.org/). デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 +`haxe` モジュールは、現在インストールされている[Haxe](https://haxe.org/) のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 -- The current directory contains a `project.xml`, `Project.xml`, `application.xml`, `haxelib.json`, `hxformat.json` or `.haxerc` file -- The current directory contains a `.haxelib` or a `haxe_libraries` directory -- The current directory contains a file with the `.hx` or `.hxml` extension +- 現在のディレクトリが `project.xml`, `Project.xml`, `application.xml`, `haxelib.json`, `hxformat.json`, `.haxerc` の何れかのファイルを含んでいる。 +- 現在のディレクトリが `.haxelib` または `haxe_library` のディレクトリを含んでいる。 +- 現在のディレクトリに拡張子が `.hx` または `.hxml`のファイルが含まれている。 ### オプション @@ -2140,15 +2180,15 @@ The `haxe` module shows the currently installed version of [Haxe](https://haxe.o | `detect_extensions` | `['hx', 'hxml']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `['.haxelib', 'haxe_libraries']` | どのフォルダーがこのモジュールをアクティブにするか | -| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `symbol` | `'⌘ '` | Helm のシンボルを表すフォーマット文字列 | | `style` | `'bold fg:202'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `haxe` module. | +| `disabled` | `false` | `haxe`モジュールを無効にします。 | ### 変数 | 変数 | 設定例 | 説明 | | --------- | -------- | ----------------------- | -| version | `v4.2.5` | The version of `haxe` | +| version | `v4.2.5` | `haxe` のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -2179,15 +2219,15 @@ format = "via [⌘ $version](bold fg:202) " | `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['helmfile.yaml', 'Chart.yaml']` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `symbol` | `'⎈ '` | A format string representing the symbol of Helm. | +| `symbol` | `'⎈ '` | Helm のシンボルを表すフォーマット文字列 | | `style` | `'bold white'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `helm` module. | +| `disabled` | `false` | `helm` モジュールを無効にします。 | ### 変数 | 変数 | 設定例 | 説明 | | --------- | -------- | ----------------------- | -| version | `v3.1.1` | The version of `helm` | +| version | `v3.1.1` | `helm` のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -2208,29 +2248,29 @@ format = 'via [⎈ $version](bold white) ' ### オプション -| オプション | デフォルト | 説明 | -| ----------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `ssh_only` | `true` | SSHセッションに接続されている場合にのみホスト名を表示します。 | -| `ssh_symbol` | `'🌐 '` | A format string representing the symbol when connected to SSH session. | -| `trim_at` | `'.'` | この文字が最初にマッチするまでをホスト名と認識します。 `'.'` will stop after the first dot. `''` will disable any truncation. | -| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | -| `format` | `'[$ssh_symbol$hostname]($style) in '` | module のフォーマットです。 | -| `style` | `'bold dimmed green'` | モジュールのスタイルです。 | -| `disabled` | `false` | `hostname`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ----------------- | -------------------------------------- | ------------------------------------------------------------------------------------ | +| `ssh_only` | `true` | SSHセッションに接続されている場合にのみホスト名を表示します。 | +| `ssh_symbol` | `'🌐 '` | SSH セッションに接続しているときのシンボルを表すフォーマット文字列。 | +| `trim_at` | `'.'` | この文字が最初にマッチするまでをホスト名と認識します。 `'.'` は最初の . 以降の文字列を切り捨てます。 `''`を指定した場合、文字列の切り捨ては行われません。 | +| `detect_env_vars` | `[]` | このモジュールを活性化する環境変数。 | +| `format` | `'[$ssh_symbol$hostname]($style) in '` | module のフォーマットです。 | +| `style` | `'bold dimmed green'` | モジュールのスタイルです。 | +| `disabled` | `false` | `hostname`モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| ---------- | ---------- | ----------------------------------------------------- | -| hostname | `computer` | The hostname of the computer | -| style\* | | オプション `style` の値をミラーする | -| ssh_symbol | `'🌏 '` | The symbol to represent when connected to SSH session | +| 変数 | 設定例 | 説明 | +| ---------- | ---------- | ------------------------ | +| hostname | `computer` | コンピュータのホスト名です。 | +| style\* | | オプション `style` の値をミラーします。 | +| ssh_symbol | `'🌏 '` | SSHセッションに接続していることを表すシンボル | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 ### 設定例 -#### Always show the hostname +#### ホスト名を常に表示する ```toml # ~/.config/starship.toml @@ -2242,7 +2282,7 @@ trim_at = '.companyname.com' disabled = false ``` -#### Hide the hostname in remote tmux sessions +#### リモートのtmuxセッションでホスト名を非表示にする ```toml # ~/.config/starship.toml @@ -2257,7 +2297,7 @@ disabled = false `Java`モジュールは、現在インストールされている[Java](https://www.oracle.com/java/)のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 -- The current directory contains a `pom.xml`, `build.gradle.kts`, `build.sbt`, `.java-version`, `deps.edn`, `project.clj`, `build.boot`, or `.sdkmanrc` file +- 現在のディレクトリに `pom.xml`, `build.gradle.kts`, `build.sbt`, `.java-version`, `deps.edn`, `project.clj`, `build.boot`, `.sdkmanrc` の何れかのファイルが含まれている - カレントディレクトリに拡張子が`.java`、`.class`、`.gradle`、`.jar`、`.clj`または`.cljc`のファイルが含まれている ### オプション @@ -2269,7 +2309,7 @@ disabled = false | `detect_extensions` | `['java', 'class', 'gradle', 'jar', 'cljs', 'cljc']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['pom.xml', 'build.gradle.kts', 'build.sbt', '.java-version', 'deps.edn', 'project.clj', 'build.boot', '.sdkmanrc']` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `symbol` | `'☕ '` | A format string representing the symbol of Java | +| `symbol` | `'☕ '` | Java の記号を表すフォーマット文字列です。 | | `style` | `'red dimmed'` | モジュールのスタイルです。 | | `disabled` | `false` | `java`モジュールを無効にします。 | @@ -2277,7 +2317,7 @@ disabled = false | 変数 | 設定例 | 説明 | | --------- | ----- | ----------------------- | -| version | `v14` | The version of `java` | +| version | `v14` | `java` のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -2294,39 +2334,39 @@ symbol = '🌟 ' ## ジョブ -`jobs`モジュールには、実行中のジョブの現在の数が表示されます。 このモジュールは、実行中のバックグラウンドジョブがある場合にのみ表示されます。 The module will show the number of jobs running if there are at least 2 jobs, or more than the `number_threshold` config value, if it exists. The module will show a symbol if there is at least 1 job, or more than the `symbol_threshold` config value, if it exists. You can set both values to 0 in order to _always_ show the symbol and number of jobs, even if there are 0 jobs running. +`jobs`モジュールには、実行中のジョブの現在の数が表示されます。 このモジュールは、実行中のバックグラウンドジョブがある場合にのみ表示されます。 設定変数 `number_threshold` が存在すればその値以上、さもなければ2つ以上のジョブがある場合に、実行中のジョブの数を表示します。 1つ以上のジョブがある、設定変数 `symbol_threshold` が存在すればその数以上、さもなければ1つ以上のジョブがある場合に、シンボルを表示します。 ジョブがない時も含めて_常_にシンボルとジョブ数を表示するには、両方に 0 を設定します。 -The default functionality is: +デフォルトの機能は次のとおりです。 -- 0 jobs -> Nothing is shown. -- 1 job -> `symbol` is shown. -- 2 jobs or more -> `symbol` + `number` are shown. +- 0個のジョブ -> 何も表示しません。 +- 1個のジョブ -> `symbol` を表示します。 +- 2個以上のジョブ-> `symbol` + `number` を表示します。 ::: warning -This module is not supported on tcsh and nu. +このモジュールは tcsh と nu ではサポートされません。 ::: ::: warning -The `threshold` option is deprecated, but if you want to use it, the module will show the number of jobs running if there is more than 1 job, or more than the `threshold` config value, if it exists. If `threshold` is set to 0, then the module will also show when there are 0 jobs running. +オプション `threshold` は非推奨になりましたが、`threshold` が指定されている場合には、モジュールは走っているジョブの数を表示します。 `threshold` が 0 に設定されている場合は、ジョブが走っていない場合にもモジュールが表示されます。 ::: ### オプション -| オプション | デフォルト | 説明 | -| ------------------ | ----------------------------- | ------------------------------------------------------------------------ | -| `threshold`* | `1` | 超過した場合、ジョブの数を表示します。 | -| `symbol_threshold` | `1` | Show `symbol` if the job count is at least `symbol_threshold`. | -| `number_threshold` | `2` | Show the number of jobs if the job count is at least `number_threshold`. | -| `format` | `'[$symbol$number]($style) '` | module のフォーマットです。 | -| `symbol` | `'✦'` | The string used to represent the `symbol` variable. | -| `style` | `'bold blue'` | モジュールのスタイルです。 | -| `disabled` | `false` | `jobs`モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ------------------ | ----------------------------- | ------------------------------------------------------ | +| `threshold`* | `1` | 超過した場合、ジョブの数を表示します。 | +| `symbol_threshold` | `1` | ジョブの数が少なくとも `symbol_threshold` ある場合に `symbol` を表示します。 | +| `number_threshold` | `2` | ジョブの数が少なくとも `number_threshold` ある場合に、ジョブ数を表示します。 | +| `format` | `'[$symbol$number]($style) '` | module のフォーマットです。 | +| `symbol` | `'✦'` | `symbol` 変数を表すために使用される文字列。 | +| `style` | `'bold blue'` | モジュールのスタイルです。 | +| `disabled` | `false` | `jobs`モジュールを無効にします。 | -*: This option is deprecated, please use the `number_threshold` and `symbol_threshold` options instead. +*: このオプションは非推奨です。代わりに `number_threshold` と `symbol_threshold` オプションを指定してください。 ### 変数 @@ -2432,19 +2472,19 @@ symbol = '🅺 ' # ~/.config/starship.toml [kotlin] -# Uses the Kotlin Compiler binary to get the installed version +# Kotlinコンパイラバイナリを使ってバージョンを確認する kotlin_binary = 'kotlinc' ``` ## Kubernetes -Displays the current [Kubernetes context](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context) name and, if set, the namespace, user and cluster from the kubeconfig file. The namespace needs to be set in the kubeconfig file, this can be done via `kubectl config set-context starship-context --namespace astronaut`. Similarly, the user and cluster can be set with `kubectl config set-context starship-context --user starship-user` and `kubectl config set-context starship-context --cluster starship-cluster`. 環境変数`$KUBECONFIG`が設定されている場合、このモジュールはそれを利用し、`~/.kube/config`を利用しません。 +現在の[Kubernetes コンテキスト](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#context)名を表示します。 kubeconfigファイルに設定されている場合は、名前空間、ユーザー、クラスターも表示します。 名前空間は kubeconfig ファイルの中で設定する必要があります。次のようにして行います: `kubectl config set-context starship-context --namespace astronaut`。 同様に、ユーザーとクラスターは `kubectl config set-context starship-context --user starship-user` と `kubectl config set-context starship-context ---cluster starship-cluster` で設定できます。 環境変数 `$KUBECONFIG` が設定されている場合、このモジュールはそれを利用し、 `~/.kube/config` を利用しません。 ::: tip このモジュールはデフォルトで無効になっています。 有効にするには、設定ファイルで `disabled` を `false` に設定します。 -When the module is enabled it will always be active, unless any of `detect_extensions`, `detect_files` or `detect_folders` have been set in which case the module will only be active in directories that match those conditions. +モジュールが有効化されているとき、`detect_env_vars`, `detect_extensions`, `detect_files`, `detect_folders` の何れかのオプションが設定されていない限りモジュールは常に表示されます。これらのオプションが設定されている場合は、対応する条件が満たされるディレクトリ内にいるときまたは環境変数が存在するときに、モジュールが表示されます。 ::: @@ -2452,26 +2492,27 @@ When the module is enabled it will always be active, unless any of `detect_exten ::: warning -The `context_aliases` and `user_aliases` options are deprecated. Use `contexts` and the corresponding `context_alias` and `user_alias` options instead. +`context_aliases` と `user_aliases` オプションは非推奨になりました。 代わりに `contexts` と対応するオプション `context_alias` と `user_alias` をお使いください。 ::: -| オプション | デフォルト | 説明 | -| ------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `symbol` | `'☸ '` | クラスター名の前に表示されるシンボルを表すフォーマット文字列。 | -| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | module のフォーマットです。 | -| `style` | `'cyan bold'` | モジュールのスタイルです。 | -| `context_aliases`* | `{}` | コンテキストの表示エイリアスを定義するテーブル。 | -| `user_aliases`* | `{}` | Table of user aliases to display. | -| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | -| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | -| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | -| `contexts` | `[]` | Customized styles and symbols for specific contexts. | -| `disabled` | `true` | `kubernetes` モジュールを無効にする。 | +| オプション | デフォルト | 説明 | +| ------------------- | ---------------------------------------------------- | ------------------------------- | +| `symbol` | `'☸ '` | クラスター名の前に表示されるシンボルを表すフォーマット文字列。 | +| `format` | `'[$symbol$context( \($namespace\))]($style) in '` | モジュールのフォーマットです。 | +| `style` | `'cyan bold'` | モジュールのスタイルです。 | +| `context_aliases`* | `{}` | 表示するコンテキストエイリアスを定義するテーブル。 | +| `user_aliases`* | `{}` | 表示するユーザーエイリアスを定義するテーブル。 | +| `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | +| `detect_env_vars` | `[]` | このモジュールを活性化する環境変数です。 | +| `contexts` | `[]` | 特定のコンテキストのカスタマイズされたスタイルとシンボルです。 | +| `disabled` | `true` | `kubernetes` モジュールを無効にする。 | -*: This option is deprecated, please add `contexts` with the corresponding `context_alias` and `user_alias` options instead. +*: このオプションは非推奨になりました。代わりに `contexts` を対応するオプション `context_alias` と `user_alias` と一緒に追加してください。 -To customize the style of the module for specific environments, use the following configuration as part of the `contexts` list: +特定の環境におけるモジュールのスタイルを変更するには、以下の設定をリスト `contexts` に含めます。 | 変数 | 説明 | | ----------------- | ---------------------------------------------------------------------------------------- | @@ -2486,14 +2527,14 @@ Note that all regular expression are anchored with `^$` and so must mat ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | -------------------- | -------------------------------------- | -| context | `starship-context` | The current kubernetes context name | -| namespace | `starship-namespace` | 設定されている場合、現在の Kubernetes の namespace 名 | -| user | `starship-user` | If set, the current kubernetes user | -| cluster | `starship-cluster` | If set, the current kubernetes cluster | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | -------------------- | -------------------------------- | +| context | `starship-context` | 現在の Kubernetes のコンテキスト名 | +| namespace | `starship-namespace` | 設定されている場合、現在の Kubernetes の名前空間名 | +| user | `starship-user` | 設定されている場合、現在の Kubernetes のユーザー名 | +| cluster | `starship-cluster` | 設定されている場合、現在の Kubernetes のクラスター名 | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -2510,7 +2551,7 @@ contexts = [ ] ``` -Only show the module in directories that contain a `k8s` file. +以下は `k8s` ファイルを含むディレクトリの中でのみモジュールを表示します。 ```toml # ~/.config/starship.toml @@ -2700,14 +2741,14 @@ By default the Meson project name is displayed, if `$MESON_DEVENV` is set. ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------- | -| `truncation_length` | `2^32 - 1` | Truncates a project name to `N` graphemes. | -| `truncation_symbol` | `'…'` | The symbol used to indicate a project name was truncated. You can use `''` for no symbol. | -| `format` | `'via [$symbol$project]($style) '` | module のフォーマットです。 | -| `symbol` | `'⬢ '` | The symbol used before displaying the project name. | -| `style` | `'blue bold'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `meson` module. | +| オプション | デフォルト | 説明 | +| ------------------- | ---------------------------------- | -------------------------------------------------------------------------- | +| `truncation_length` | `2^32 - 1` | Truncates a project name to `N` graphemes. | +| `truncation_symbol` | `'…'` | The symbol used to indicate a project name was truncated. `''` で記号なしにできます。 | +| `format` | `'via [$symbol$project]($style) '` | module のフォーマットです。 | +| `symbol` | `'⬢ '` | The symbol used before displaying the project name. | +| `style` | `'blue bold'` | モジュールのスタイルです。 | +| `disabled` | `false` | Disables the `meson` module. | ### 変数 @@ -2768,6 +2809,35 @@ truncation_length = 4 truncation_symbol = '' ``` +## NATS + +The `nats` module shows the name of the current [NATS](https://nats.io) context. + +### オプション + +| オプション | デフォルト | 説明 | +| ---------- | -------------------------- | ------------------------------------------------------------ | +| `symbol` | `'✉️ '` | The symbol used before the NATS context (defaults to empty). | +| `style` | `'bold purple'` | モジュールのスタイルです。 | +| `format` | `'[$symbol$name]($style)'` | module のフォーマットです。 | +| `disabled` | `false` | Disables the `nats` module. | + +### 変数 + +| 変数 | 設定例 | 説明 | +| --------- | ----------- | ---------------------------- | +| name | `localhost` | The name of the NATS context | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | + +### 設定例 + +```toml +[nats] +format = '[$symbol]($style)' +style = 'bold purple' +``` + ## Nim `nim`モジュールは、現在インストールされている[Nim](https://nim-lang.org/)のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 @@ -2943,6 +3013,43 @@ format = 'via [🤖 $version](bold green) ' format = 'via [🐪 $version]($style) ' ``` +## Odin + +The 'odin' module shows the currently installed version of [Odin](https://odin-lang.org/). By default the module will be shown if the current directory contains a `.odin` file. + +### オプション + +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------------ | ---------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | +| `show_commit` | `false` | Shows the commit as part of the version. | +| `symbol` | `'Ø '` | Zig のバージョンの前に表示されるシンボルです。 | +| `style` | `'bold bright-blue'` | モジュールのスタイルです。 | +| `disabled` | `false` | Disables the `odin` module. | +| `detect_extensions` | `['odin']` | どの拡張子がこのモジュールをアクティブにするか | +| `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | +| `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | + +### 変数 + +| 変数 | 設定例 | 説明 | +| --------- | ------------- | ----------------------- | +| version | `dev-2024-03` | The version of `odin` | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | + +*: この変数は、スタイル文字列の一部としてのみ使用することができます。 + +### 設定例 + +```toml +# ~/.config/starship.toml + +[odin] +format = 'via [󰹩 ($version )]($style)' +show_commit = true +``` + ## Open Policy Agent The `opa` module shows the currently installed version of the OPA tool. By default the module will be shown if the current directory contains a `.rego` file. @@ -3757,7 +3864,7 @@ The `shell` module shows an indicator for currently used shell. | 変数 | デフォルト | 説明 | | --------- | ----- | ---------------------------------------------------------- | | indicator | | Mirrors the value of `indicator` for currently used shell. | -| style\* | | オプション `style` の値をミラーする. | +| style\* | | オプション `style` の値のミラー。 | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -3811,7 +3918,7 @@ format = '$shlvl level(s) down' threshold = 3 ``` -Using `repeat` and `repeat_offset` along with `character` module, one can get prompt like `❯❯❯` where last character is colored appropriately for return status code and preceeding characters are provided by `shlvl`. +Using `repeat` and `repeat_offset` along with `character` module, one can get prompt like `❯❯❯` where last character is colored appropriately for return status code and preceding characters are provided by `shlvl`. ```toml # ~/.config/starship.toml @@ -3897,25 +4004,25 @@ format = "via [S $version](blue bold)" ## Spack -The `spack` module shows the current [Spack](https://spack.readthedocs.io/en/latest/) environment, if `$SPACK_ENV` is set. +`spack` モジュールは、`$SPACK_ENV` が設定されているときに、現在の [Spack](https://spack.readthedocs.io/en/latest/) 環境を表示します。 ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| `truncation_length` | `1` | The number of directories the environment path should be truncated to. `0`は切り捨てがないことを意味します。 [`directory`](#directory)もご覧ください。 | -| `symbol` | `'🅢 '` | 環境名の直前に使用されるシンボルです。 | -| `style` | `'bold blue'` | モジュールのスタイルです。 | -| `format` | `'via [$symbol$environment]($style) '` | module のフォーマットです。 | -| `disabled` | `false` | Disables the `spack` module. | +| オプション | デフォルト | 説明 | +| ------------------- | -------------------------------------- | ------------------------------------------------------------------------------- | +| `truncation_length` | `1` | 環境パスを切り捨てて表示するディレクトリの数。 `0`は切り捨てがないことを意味します。 [`directory`](#directory)もご覧ください。 | +| `symbol` | `'🅢 '` | 環境名の直前に使用されるシンボルです。 | +| `style` | `'bold blue'` | モジュールのスタイルです。 | +| `format` | `'via [$symbol$environment]($style) '` | module のフォーマットです。 | +| `disabled` | `false` | `spack` モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| ----------- | ------------ | ----------------------------- | -| environment | `astronauts` | The current spack environment | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| ----------- | ------------ | ----------------------- | +| environment | `astronauts` | 現在の spack 環境 | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -3930,7 +4037,7 @@ format = '[$symbol$environment](dimmed blue) ' ## Status -The `status` module displays the exit code of the previous command. If $success_symbol is empty (default), the module will be shown only if the exit code is not `0`. The status code will cast to a signed 32-bit integer. +`status` モジュールは、直前のコマンドの終了ステータスを表示します。 $success_symbol が空 (既定) の場合、モジュールは終了ステータスが `0` でない場合にのみ表示されます。 終了ステータスは符号付き32ビット整数にキャストされます。 ::: tip @@ -3940,38 +4047,38 @@ The `status` module displays the exit code of the previous command. If $success_ ### オプション -| オプション | デフォルト | 説明 | -| --------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `format` | `'[$symbol$status]($style) '` | The format of the module | -| `symbol` | `'❌'` | The symbol displayed on program error | -| `success_symbol` | `''` | The symbol displayed on program success | -| `not_executable_symbol` | `'🚫'` | The symbol displayed when file isn't executable | -| `not_found_symbol` | `'🔍'` | The symbol displayed when the command can't be found | -| `sigint_symbol` | `'🧱'` | The symbol displayed on SIGINT (Ctrl + c) | -| `signal_symbol` | `'⚡'` | The symbol displayed on any signal | -| `style` | `'bold red'` | モジュールのスタイルです。 | -| `recognize_signal_code` | `true` | Enable signal mapping from exit code | -| `map_symbol` | `false` | Enable symbols mapping from exit code | -| `pipestatus` | `false` | Enable pipestatus reporting | -| `pipestatus_separator` | | | The symbol used to separate pipestatus segments (supports formatting) | -| `pipestatus_format` | `'\[$pipestatus\] => [$symbol$common_meaning$signal_name$maybe_int]($style)'` | The format of the module when the command is a pipeline | -| `pipestatus_segment_format` | | When specified, replaces `format` when formatting pipestatus segments | -| `disabled` | `true` | Disables the `status` module. | +| オプション | デフォルト | 説明 | +| --------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------- | +| `format` | `'[$symbol$status]($style) '` | モジュールのフォーマットです。 | +| `symbol` | `'❌'` | プログラムエラー時に表示される記号です。 | +| `success_symbol` | `''` | プログラム成功時に表示される記号です。 | +| `not_executable_symbol` | `'🚫'` | ファイルが実行可能ファイルでないときに表示されるシンボルです。 | +| `not_found_symbol` | `'🔍'` | コマンドが見つからないときに表示されるシンボルです。 | +| `sigint_symbol` | `'🧱'` | SIGINT (Ctrl + c) に際して表示されるシンボルです。 | +| `signal_symbol` | `'⚡'` | 任意のシグナルに対して表示されるシンボルです。 | +| `style` | `'bold red'` | モジュールのスタイルです。 | +| `recognize_signal_code` | `true` | 終了ステータスからシグナルへのマッピングを有効にします。 | +| `map_symbol` | `false` | 終了ステータスからシンボルへのマッピングを有効にします。 | +| `pipestatus` | `false` | パイプステータス表示を有効にします。 | +| `pipestatus_separator` | | | パイプラインの各要素を分割するのに使う記号を指定します。フォーマット文字列がサポートされます。 | +| `pipestatus_format` | `'\[$pipestatus\] => [$symbol$common_meaning$signal_name$maybe_int]($style)'` | コマンドがパイプラインである場合のモジュールのフォーマットです。 | +| `pipestatus_segment_format` | | 指定されている場合、パイプステータスの要素を書式設定する際に `format` の代わりに使われます。 | +| `disabled` | `true` | `status`モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| -------------- | ------- | ------------------------------------------------------------------------------------------ | -| status | `127` | The exit code of the last command | -| hex_status | `0x7F` | The exit code of the last command in hex | -| int | `127` | The exit code of the last command | -| common_meaning | `ERROR` | Meaning of the code if not a signal | -| signal_number | `9` | Signal number corresponding to the exit code, only if signalled | -| signal_name | `KILL` | Name of the signal corresponding to the exit code, only if signalled | -| maybe_int | `7` | Contains the exit code number when no meaning has been found | -| pipestatus | | Rendering of in pipeline programs' exit codes, this is only available in pipestatus_format | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| -------------- | ------- | ------------------------------------------------------- | +| status | `127` | 直前のコマンドの終了ステータス | +| hex_status | `0x7F` | 直前のコマンドの終了ステータスを16進数で表記したもの | +| int | `127` | 直前のコマンドの終了ステータス | +| common_meaning | `ERROR` | シグナルでない場合、終了ステータスの意味 | +| signal_number | `9` | シグナルで終了した場合、終了ステータスに対応するシグナル番号 | +| signal_name | `KILL` | シグナルで終了した場合、終了ステータスに対応するシグナル名 | +| maybe_int | `7` | 対応する意味が見つからない場合にのみ、終了コード番号を含みます。 | +| pipestatus | | パイプラインプログラムの終了ステータスの表示です。pipestatus_format の中でのみ使用できます。 | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -3991,7 +4098,7 @@ disabled = false ## Sudo -The `sudo` module displays if sudo credentials are currently cached. The module will only be shown if credentials are cached. +`sudo` モジュールは、sudo 資格情報が現在キャッシュされているかどうかを表示します。 モジュールは資格情報がキャッシュされている場合にのみ表示されます。 ::: tip @@ -4001,13 +4108,13 @@ The `sudo` module displays if sudo credentials are currently cached. The module ### オプション -| オプション | デフォルト | 説明 | -| --------------- | ------------------------ | ------------------------------------------------------- | -| `format` | `'[as $symbol]($style)'` | The format of the module | -| `symbol` | `'🧙 '` | The symbol displayed when credentials are cached | -| `style` | `'bold blue'` | モジュールのスタイルです。 | -| `allow_windows` | `false` | Since windows has no default sudo, default is disabled. | -| `disabled` | `true` | Disables the `sudo` module. | +| オプション | デフォルト | 説明 | +| --------------- | ------------------------ | --------------------------------------- | +| `format` | `'[as $symbol]($style)'` | モジュールのフォーマットです。 | +| `symbol` | `'🧙 '` | 資格情報がキャッシュされたときに表示されるシンボルです。 | +| `style` | `'bold blue'` | モジュールのスタイルです。 | +| `allow_windows` | `false` | Windows にはデフォルトで sudo がないため、既定で無効になります。 | +| `disabled` | `true` | `sudo` モジュールを無効にします。 | ### 変数 @@ -4030,7 +4137,7 @@ disabled = false ``` ```toml -# On windows +# Windows では # $HOME\.starship\config.toml [sudo] @@ -4051,18 +4158,18 @@ disabled = false | ------------------- | ------------------------------------ | ------------------------------------------------------ | | `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | | `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'🐦 '` | A format string representing the symbol of Swift | +| `symbol` | `'🐦 '` | Swift のシンボルを表すフォーマット文字列 | | `detect_extensions` | `['swift']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['Package.swift']` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | | `style` | `'bold 202'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `swift` module. | +| `disabled` | `false` | `swift` モジュールを無効にします。 | ### 変数 | 変数 | 設定例 | 説明 | | --------- | -------- | ----------------------- | -| version | `v5.2.4` | The version of `swift` | +| version | `v5.2.4` | `swift` のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -4107,12 +4214,12 @@ Terraformのバージョンはデフォルトでは表示されません。多 ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | ---------- | ----------------------- | -| version | `v0.12.24` | `terraform` のバージョン | -| workspace | `default` | 現在のTerraformワークスペース | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | ---------- | ------------------------ | +| version | `v0.12.24` | `terraform` のバージョン | +| workspace | `default` | 現在のTerraformワークスペース | +| symbol | | オプション `symbol` の値をミラーします | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -4148,24 +4255,24 @@ format = '[🏎💨 $workspace]($style) ' ### オプション -| オプション | デフォルト | 説明 | -| ----------------- | ----------------------- | ----------------------------------------------------------------------------------------------------- | -| `format` | `'at [$time]($style) '` | モジュールのフォーマット文字列。 | -| `use_12hr` | `false` | 12時間のフォーマットを有効にします。 | -| `time_format` | この表の下を参照してください | 時刻のフォーマットに使用される[クロノフォーマット文字列](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html) です。 | -| `style` | `'bold yellow'` | モジュールのスタイルです。 | -| `utc_time_offset` | `'local'` | 使用するUTCオフセットを設定します。 Range from -24 < x < 24. フロートが30/45分のタイムゾーンオフセットに対応できるようにします。 | -| `disabled` | `true` | `time`モジュールを無効にします。 | -| `time_range` | `'-'` | Sets the time range during which the module will be shown. Times must be specified in 24-hours format | +| オプション | デフォルト | 説明 | +| ----------------- | ----------------------- | ------------------------------------------------------------------------------------------------- | +| `format` | `'at [$time]($style) '` | モジュールのフォーマット文字列。 | +| `use_12hr` | `false` | 12時間のフォーマットを有効にします。 | +| `time_format` | この表の下を参照してください | 時刻のフォーマットに使用される[クロノフォーマット文字列](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html) です。 | +| `style` | `'bold yellow'` | モジュールのスタイルです。 | +| `utc_time_offset` | `'local'` | 使用するUTCオフセットを設定します。 -24 から 24 までの間で設定可能です。 フロートが30/45分のタイムゾーンオフセットに対応できるようにします。 | +| `disabled` | `true` | `time`モジュールを無効にします。 | +| `time_range` | `'-'` | モジュールを表示する時間帯を設定します。 時刻は24時間形式で指定する必要があります。 | -If `use_12hr` is `true`, then `time_format` defaults to `'%r'`. Otherwise, it defaults to `'%T'`. Manually setting `time_format` will override the `use_12hr` setting. +`use_12hr` が `true` の場合、`format` のデフォルトは `'%r'` です。 それ以外の場合、デフォルトは`'%T'`です。 `time_format` を手動で設定すると、設定 `use_12hr` が上書きされます。 ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | ---------- | ---------------------- | -| time | `13:08:10` | The current time. | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | ---------- | ----------------------- | +| time | `13:08:10` | 現在時刻 | +| style\* | | オプション `style` の値をミラーします | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -4184,12 +4291,12 @@ time_range = '10:00:00-14:00:00' ## Typst -The `typst` module shows the current installed version of Typst used in a project. +`typst` モジュールは、現在インストールされてプロジェクトで使われている Typst のバージョンを表示します。 デフォルトでは次の条件のいずれかが満たされると、モジュールが表示されます。 - カレントディレクトリに`template.typ`ファイルが含まれている -- The current directory contains any `*.typ` file +- カレントディレクトリに拡張子が `.typ` のファイルが含まれている ### オプション @@ -4206,12 +4313,12 @@ The `typst` module shows the current installed version of Typst used in a projec ### 変数 -| 変数 | 設定例 | 説明 | -| ------------- | --------- | ----------------------------------------------- | -| version | `v0.9.0` | The version of `typst`, alias for typst_version | -| typst_version | `default` | The current Typst version | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| ------------- | --------- | ------------------------------------- | +| version | `v0.9.0` | `typst`のバージョン。typst_version のエイリアスです。 | +| typst_version | `default` | 現在の Typst バージョン | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -4219,39 +4326,40 @@ The `typst` module shows the current installed version of Typst used in a projec `username`モジュールはアクティブなユーザーのユーザー名を表示します。 次の条件のいずれかが満たされると、モジュールが表示されます: -- The current user is root/admin +- 現在のユーザーが root/admin である - カレントユーザーが、ログインしているユーザーとは異なる - ユーザーがSSHセッションとして接続されている - `show_always`変数がtrueに設定されている -- The array `detect_env_vars` contains at least the name of one environment variable, that is set +- 配列 `detect_env_var` に、少なくとも1つの現在シェルで設定されている環境変数の名前が含まれている ::: tip -SSH connection is detected by checking environment variables `SSH_CONNECTION`, `SSH_CLIENT`, and `SSH_TTY`. If your SSH host does not set up these variables, one workaround is to set one of them with a dummy value. +SSH接続は、環境変数 `SSH_CONNECTION`、 `SSH_CLIENT`、および `SSH_TTY` をチェックすることで検出されます。 お使いの SSH ホストがこれらの変数を設定しない場合、回避策として例えばこれらの変数にダミー値を設定してください。 ::: ### オプション -| オプション | デフォルト | 説明 | -| ----------------- | ----------------------- | --------------------------------------------------------- | -| `style_root` | `'bold red'` | The style used when the user is root/admin. | -| `style_user` | `'bold yellow'` | 非rootユーザーに使用されるスタイルです。 | -| `detect_env_vars` | `[]` | Which environment variable(s) should trigger this module. | -| `format` | `'[$user]($style) in '` | module のフォーマットです。 | -| `show_always` | `false` | `username` モジュールを常に表示します。 | -| `disabled` | `false` | `username` モジュールを無効にします。 | +| オプション | デフォルト | 説明 | +| ----------------- | ----------------------- | --------------------------------- | +| `style_root` | `'bold red'` | ユーザーが root/admin のときに使用されるスタイルです。 | +| `style_user` | `'bold yellow'` | 非rootユーザーに使用されるスタイルです。 | +| `detect_env_vars` | `[]` | このモジュールを活性化する環境変数。 | +| `format` | `'[$user]($style) in '` | module のフォーマットです。 | +| `show_always` | `false` | `username` モジュールを常に表示します。 | +| `disabled` | `false` | `username` モジュールを無効にします。 | +| `aliases` | `{}` | システムユーザー名を別のものに置換します。 | ### 変数 -| 変数 | 設定例 | 説明 | -| ------- | ------------ | ------------------------------------------------------------------------------------------- | -| `style` | `'red bold'` | Mirrors the value of option `style_root` when root is logged in and `style_user` otherwise. | -| `user` | `'matchai'` | The currently logged-in user ID. | +| 変数 | 設定例 | 説明 | +| ------- | ------------ | -------------------------------------------------------------------------- | +| `style` | `'red bold'` | root がログインしている場合は `style_root` オプションの値をミラーし、そうでない場合は `style_user` をミラーします。 | +| `user` | `'matchai'` | 現在ログインしているユーザーID。 | ### 設定例 -#### Always show the hostname +#### ホスト名を常に表示する ```toml # ~/.config/starship.toml @@ -4262,9 +4370,10 @@ style_root = 'black bold' format = 'user: [$user]($style) ' disabled = false show_always = true +aliases = { "corpuser034g" = "matchai" } ``` -#### Hide the hostname in remote tmux sessions +#### リモートのtmuxセッションでホスト名を非表示にする ```toml # ~/.config/starship.toml @@ -4287,20 +4396,20 @@ disabled = false | ------------------- | ------------------------------------ | ------------------------------------------------------ | | `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | | `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'⍱ '` | A format string representing the symbol of Vagrant. | +| `symbol` | `'⍱ '` | Vagrant のシンボルを表すフォーマット文字列. | | `detect_extensions` | `[]` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['Vagrantfile']` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | | `style` | `'cyan bold'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `vagrant` module. | +| `disabled` | `false` | `vagrant`モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | ---------------- | ------------------------ | -| version | `Vagrant 2.2.10` | The version of `Vagrant` | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | ---------------- | ----------------------- | +| version | `Vagrant 2.2.10` | `Vagrant` のバージョン | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -4326,18 +4435,18 @@ format = 'via [⍱ $version](bold white) ' | ------------------- | -------------------------------------------- | ------------------------------------------------------ | | `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | | `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'V '` | A format string representing the symbol of V | +| `symbol` | `'V '` | V のシンボルを表すフォーマット文字列 | | `detect_extensions` | `['v']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `['v.mod', 'vpkg.json', '.vpkg-lock.json' ]` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | | `style` | `'blue bold'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `vlang` module. | +| `disabled` | `false` | `vlang`モジュールを無効にします。 | ### 変数 | 変数 | 設定例 | 説明 | | --------- | ------ | ----------------------- | -| version | `v0.2` | The version of `v` | +| version | `v0.2` | `v` のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -4351,24 +4460,24 @@ format = 'via [V $version](blue bold) ' ## VCSH -The `vcsh` module displays the current active [VCSH](https://github.com/RichiH/vcsh) repository. The module will be shown only if a repository is currently in use. +`vcsh` モジュールは、現在アクティブな [VCSH](https://github.com/RichiH/vcsh) リポジトリを表示します。 モジュールは、現在使用中のリポジトリがある場合にのみ表示されます。 ### オプション -| オプション | デフォルト | 説明 | -| ---------- | -------------------------------- | ------------------------------------------------------ | -| `symbol` | `''` | The symbol used before displaying the repository name. | -| `style` | `'bold yellow'` | モジュールのスタイルです。 | -| `format` | `'vcsh [$symbol$repo]($style) '` | module のフォーマットです。 | -| `disabled` | `false` | Disables the `vcsh` module. | +| オプション | デフォルト | 説明 | +| ---------- | -------------------------------- | ------------------- | +| `symbol` | `''` | リポジトリ名の前に表示される記号です。 | +| `style` | `'bold yellow'` | モジュールのスタイルです。 | +| `format` | `'vcsh [$symbol$repo]($style) '` | module のフォーマットです。 | +| `disabled` | `false` | `vcsh`モジュールを無効にします。 | ### 変数 -| 変数 | 設定例 | 説明 | -| --------- | ------------------------------------------- | -------------------------- | -| repo | `dotfiles` if in a VCSH repo named dotfiles | The active repository name | -| symbol | | オプション `symbol` の値をミラーする | -| style\* | `black bold dimmed` | オプション `style` の値をミラーする | +| 変数 | 設定例 | 説明 | +| --------- | --------------------------------------------- | ----------------------- | +| repo | `dotfiles` (dotfiles という名の VCSH リポジトリ内にいる場合) | アクティブなリポジトリ名 | +| symbol | | オプション `symbol` の値をミラーする | +| style\* | `black bold dimmed` | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 @@ -4383,7 +4492,7 @@ format = '[🆅 $repo](bold blue) ' ## Zig -By default the `zig` module shows the currently installed version of [Zig](https://ziglang.org/). 次の条件のいずれかが満たされると、モジュールが表示されます: +既定で `zig`モジュールは、現在インストールされている[Zig](https://ziglang.org/)のバージョンを表示します。 このモジュールは次の条件のいずれかが満たされると表示されます: - カレントディレクトリに拡張子が`.zig`のファイルが含まれている @@ -4393,9 +4502,9 @@ By default the `zig` module shows the currently installed version of [Zig](https | ------------------- | ------------------------------------ | ------------------------------------------------------ | | `format` | `'via [$symbol($version )]($style)'` | module のフォーマットです。 | | `version_format` | `'v${raw}'` | バージョンのフォーマット。 使用可能な変数は`raw`、`major`、`minor`と`patch`です。 | -| `symbol` | `'↯ '` | The symbol used before displaying the version of Zig. | +| `symbol` | `'↯ '` | Zig のバージョンの前に表示されるシンボルです。 | | `style` | `'bold yellow'` | モジュールのスタイルです。 | -| `disabled` | `false` | Disables the `zig` module. | +| `disabled` | `false` | `zig` モジュールを無効にします。 | | `detect_extensions` | `['zig']` | どの拡張子がこのモジュールをアクティブにするか | | `detect_files` | `[]` | どのファイル名がこのモジュールをアクティブにするか | | `detect_folders` | `[]` | どのフォルダーがこのモジュールをアクティブにするか | @@ -4404,7 +4513,7 @@ By default the `zig` module shows the currently installed version of [Zig](https | 変数 | 設定例 | 説明 | | --------- | -------- | ----------------------- | -| version | `v0.6.0` | The version of `zig` | +| version | `v0.6.0` | `zig` のバージョン | | symbol | | オプション `symbol` の値をミラーする | | style\* | | オプション `style` の値をミラーする | @@ -4419,100 +4528,100 @@ By default the `zig` module shows the currently installed version of [Zig](https symbol = '⚡️ ' ``` -## Custom commands +## カスタムコマンド -The `custom` modules show the output of some arbitrary commands. +`custom` モジュールは、任意のコマンドの出力を表示します。 -These modules will be shown if any of the following conditions are met: +以下のいずれかの条件が満たされる場合に、モジュールが表示されます: -- The current directory contains a file whose name is in `detect_files` -- The current directory contains a directory whose name is in `detect_folders` -- The current directory contains a file whose extension is in `detect_extensions` -- The `when` command returns 0 -- The current Operating System (std::env::consts::OS) matches with `os` field if defined. +- 現在のディレクトリに `detect_files` に挙げた名前のファイルが存在する。 +- 現在のディレクトリに `detect_folders` に挙げた名前のサブディレクトリが存在する。 +- 現在のディレクトリに `detect_extensions` に挙げた拡張子に一致するファイルが存在する。 +- `when` コマンドが 0 を返す。 +- `os` フィールドが指定されている場合、現在のオペレーティング システム (std::env::consts::OS) がそれに一致する。 ::: tip -Multiple custom modules can be defined by using a `.`. +`.` を使用して複数のカスタムモジュールを定義できます。 ::: ::: tip -The order in which custom modules are shown can be individually set by including `${custom.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`). By default, the `custom` module will simply show all custom modules in the order they were defined. +カスタムモジュールが表示される順序は、`${custom.foo}` (ドットが含まれるので `${...}` を使う必要があります) をトップレベルの `format` に入れることで個別に設定できます。 既定では、 `custom` モジュールは、単にすべての custom モジュールを定義順で表示します。 ::: ::: tip -[Issue #1252](https://github.com/starship/starship/discussions/1252) contains examples of custom modules. If you have an interesting example not covered there, feel free to share it there! +[イシュー #1252](https://github.com/starship/starship/discussions/1252) にはカスタムモジュールの例が含まれています。 紹介されていない興味深い用例をお持ちでしたら、そちらで気軽に共有してください! ::: -::: warning Command output is printed unescaped to the prompt +::: warning コマンド出力はエスケープされずにプロンプトに出力されます -Whatever output the command generates is printed unmodified in the prompt. This means if the output contains special sequences that are interpreted by your shell they will be expanded when displayed. These special sequences are shell specific, e.g. you can write a command module that writes bash sequences, e.g. `\h`, but this module will not work in a fish or zsh shell. +コマンドが生成するいかなる出力もそのままプロンプト内に表示されます。 つまり、出力にシェルによって解釈される特殊なシーケンスが含まれている場合、それらが表示時に展開されます。 特殊なシーケンスは各シェル固有のものです。例えば `\h` などの Bash で使われるシーケンスを出力するコマンドモジュールを作成することができますが、そのようなモジュールは Fish や Zsh などのシェルでは動きません。 -Format strings can also contain shell specific prompt sequences, e.g. [Bash](https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html), [Zsh](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html). +フォーマット文字列には、シェル固有のプロンプトシーケンスを含めることもできます。例えば [Bash](https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html), [Zsh](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html). ::: ### オプション -| オプション | デフォルト | 説明 | -| ------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `command` | `''` | The command whose output should be printed. The command will be passed on stdin to the shell. | -| `when` | `false` | Either a boolean value (`true` or `false`, without quotes) or a string shell command used as a condition to show the module. In case of a string, the module will be shown if the command returns a `0` status code. | -| `require_repo` | `false` | If `true`, the module will only be shown in paths containing a (git) repository. This option alone is not sufficient display condition in absence of other options. | -| `shell` | | [この表の下を参照してください](#custom-command-shell) | -| `説明` | `''` | The description of the module that is shown when running `starship explain`. | -| `detect_files` | `[]` | The files that will be searched in the working directory for a match. | -| `detect_folders` | `[]` | The directories that will be searched in the working directory for a match. | -| `detect_extensions` | `[]` | The extensions that will be searched in the working directory for a match. | -| `symbol` | `''` | The symbol used before displaying the command output. | -| `style` | `'bold green'` | モジュールのスタイルです。 | -| `format` | `'[$symbol($output )]($style)'` | module のフォーマットです。 | -| `disabled` | `false` | Disables this `custom` module. | -| `os` | | Operating System name on which the module will be shown (unix, linux, macos, windows, ... ) [See possible values](https://doc.rust-lang.org/std/env/consts/constant.OS.html). | -| `use_stdin` | | An optional boolean value that overrides whether commands should be forwarded to the shell via the standard input or as an argument. If unset standard input is used by default, unless the shell does not support it (cmd, nushell). Setting this disables shell-specific argument handling. | -| `ignore_timeout` | `false` | Ignore global `command_timeout` setting and keep running external commands, no matter how long they take. | +| オプション | デフォルト | 説明 | +| ------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `command` | `''` | その出力が表示されるコマンド。 コマンドはシェルの標準入力に渡されます。 | +| `when` | `false` | ブール値 (クォートなしの `true` または `false`) かモジュールを表示する条件として使用されるシェルコマンド文字列。 文字列の場合、コマンドが終了ステータス `0` を返したときにモジュールが表示されます。 | +| `require_repo` | `false` | `true`の場合、モジュールは (Git の) リポジトリを含むパスにのみ表示されます。 他のオプションが指定されていない場合、このオプション単体では表示条件として不十分です。 | +| `shell` | | [この表の下を参照してください](#custom-command-shell) | +| `説明` | `''` | `starship explain` 実行の際に表示されるモジュールの説明。 | +| `detect_files` | `[]` | 表示条件として確認する作業ディレクトリ内のファイル名を指定します。 | +| `detect_folders` | `[]` | 表示条件として確認する作業ディレクトリ内のディレクトリ名を指定します。 | +| `detect_extensions` | `[]` | 表示条件として確認する作業ディレクトリ内のファイルの拡張子を指定します。 | +| `symbol` | `''` | コマンド出力の前に表示される記号です。 | +| `style` | `'bold green'` | モジュールのスタイルです。 | +| `format` | `'[$symbol($output )]($style)'` | module のフォーマットです。 | +| `disabled` | `false` | `custom` モジュールを無効にします。 | +| `os` | | モジュールが表示されるオペレーティングシステムの名前 (unix, linux, macos, windows, ...)。 [利用可能な値](https://doc.rust-lang.org/std/env/consts/constant.OS.html) を参照してください。 | +| `use_stdin` | | シェルに対してコマンドを標準出力を介して指定するか引数を介して指定するかの振る舞い上書きするおまけの boolen 値の設定です。 指定がない場合、(cmd, nushell などのようにシェルのサポート外でない限り) 標準入力が既定で使われます。 設定するとシェル固有の引数処理を無効にします。 | +| `ignore_timeout` | `false` | グローバルな `command_timeout` 設定を無視して、いくら時間がかかっても外部コマンド実行を継続します。 | ### 変数 -| 変数 | 説明 | -| --------- | -------------------------------------- | -| output | The output of shell command in `shell` | -| symbol | オプション `symbol` の値をミラーする | -| style\* | オプション `style` の値をミラーする | +| 変数 | 説明 | +| --------- | ------------------------- | +| output | `shell` におけるシェルコマンドの出力結果。 | +| symbol | オプション `symbol` の値をミラーする | +| style\* | オプション `style` の値をミラーする | *: この変数は、スタイル文字列の一部としてのみ使用することができます。 -#### Custom command shell +#### カスタムコマンドを実行するシェル -`shell` accepts a non-empty list of strings, where: +`shell` には、以下のように空でない文字列のリストを指定します: -- The first string is the path to the shell to use to execute the command. -- Other following arguments are passed to the shell. +- 最初の文字列は、コマンドを実行するために使用するシェルへのパスです。 +- その他の文字列は引数としてシェルに渡されます。 -If unset, it will fallback to STARSHIP_SHELL and then to 'sh' on Linux, and 'cmd /C' on Windows. +未設定の場合は、最初に STARSHIP_SHELL に対して、そして Linux では 'sh' に、Windowsでは 'cmd / C' に対してフォールバックが試みられます。 -The `command` will be passed in on stdin. +`command` は stdin に渡されます。 -If `shell` is not given or only contains one element and Starship detects PowerShell will be used, the following arguments will automatically be added: `-NoProfile -Command -`. If `shell` is not given or only contains one element and Starship detects Cmd will be used, the following argument will automatically be added: `/C` and `stdin` will be set to `false`. If `shell` is not given or only contains one element and Starship detects Nushell will be used, the following arguments will automatically be added: `-c` and `stdin` will be set to `false`. This behavior can be avoided by explicitly passing arguments to the shell, e.g. +`shell` が指定されていないか要素の数が1つでかつ Starship が PowerShell が使われると判定した場合、次の引数が自動的に付加されます: `-NoProfile -Command -`。 `shell` が指定されていないか要素の数が1つでかつ Starship が Cmd が使われると判定した場合、引数 `/C` が自動的に付加され、`stdin` が `false` に設定されます。 `shell` が指定されていないか要素の数が1つでかつ Starship が Nushell が使われると判定した場合、引数 `-c` が自動的に付加され、`stdin` が `false` に設定されます。 この動作は、シェルに明示的に引数を渡すことで回避できます。例: ```toml shell = ['pwsh', '-Command', '-'] ``` -::: warning Make sure your custom shell configuration exits gracefully +::: warning 設定したカスタムシェルが正常終了することを再度ご確認ください -If you set a custom command, make sure that the default Shell used by starship will properly execute the command with a graceful exit (via the `shell` option). +カスタムコマンドを設定するときは、(`shell` オプションを通して指定される) Starship が使用する既定のシェルがコマンドを正しく実行し正しく終了することを確認してください。 -For example, PowerShell requires the `-Command` parameter to execute a one liner. Omitting this parameter might throw starship into a recursive loop where the shell might try to load a full profile environment with starship itself again and hence re-execute the custom command, getting into a never ending loop. +たとえば、PowerShell では一行コマンドを実行するために `-Command` パラメータを指定する必要があります。 このパラメータを省略すると、呼び出されたシェルが初期化のために再帰的に Starship を呼び出し、その Starship が再びカスタムコマンドを実行することによって、無限ループになる可能性があります。 -Parameters similar to `-NoProfile` in PowerShell are recommended for other shells as well to avoid extra loading time of a custom profile on every starship invocation. +PowerShell の `-NoProfile` に似たパラメータは、他のシェルでも推奨されます。これは、Starship の呼び出しごとにカスタムプロファイルの追加ロード時間が発生することを避けるためです。 -Automatic detection of shells and proper parameters addition are currently implemented, but it's possible that not all shells are covered. [Please open an issue](https://github.com/starship/starship/issues/new/choose) with shell details and starship configuration if you hit such scenario. +現在、シェルと適切なパラメータの自動検出は実装されていますが、すべてのシェルがカバーされているとは限りません。 このような状況にお気づきの場合は、[イシューを開いて](https://github.com/starship/starship/issues/new/choose)シェルの詳細と Starship の設定をご報告ください。 ::: @@ -4522,19 +4631,19 @@ Automatic detection of shells and proper parameters addition are currently imple # ~/.config/starship.toml [custom.foo] -command = 'echo foo' # shows output of command -detect_files = ['foo'] # can specify filters but wildcards are not supported +command = 'echo foo' # コマンドの出力を表示する +detect_files = ['foo'] # フィルター。ワイルドカードは非対応 when = ''' test "$HOME" = "$PWD" ''' format = ' transcending [$output]($style)' [custom.time] command = 'time /T' -detect_extensions = ['pst'] # filters *.pst files +detect_extensions = ['pst'] # *.pst ファイルを選択 shell = ['pwsh.exe', '-NoProfile', '-Command', '-'] [custom.time-as-arg] command = 'time /T' -detect_extensions = ['pst'] # filters *.pst files +detect_extensions = ['pst'] # *.pst ファイルを選択 shell = ['pwsh.exe', '-NoProfile', '-Command'] use_stdin = false ``` diff --git a/docs/ja-JP/faq/README.md b/docs/ja-JP/faq/README.md index de81beb7..bb529116 100644 --- a/docs/ja-JP/faq/README.md +++ b/docs/ja-JP/faq/README.md @@ -58,7 +58,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl ## どうして`Executing command "..." timed out.`という警告が出てくるのでしょうか? -Starship executes different commands to get information to display in the prompt, for example the version of a program or the current git status. To make sure starship doesn't hang while trying to execute these commands we set a time limit, if a command takes longer than this limit starship will stop the execution of the command and output the above warning, this is expected behaviour. This time limit is configurable using the [`command_timeout`key](../config/#prompt) so if you want you can increase the time limit. You can also follow the debugging steps below to see which command is being slow and see if you can optimise it. Finally you can set the `STARSHIP_LOG` env var to `error` to hide these warnings. +Starship は、プロンプトに表示する情報 (例えば、プログラムのバージョンや現在の git ステータス) を取得するために、異なるコマンドを実行します。 これらのコマンドの実行中に Starship の応答がなくなるのを防ぐためにタイムリミットが設定されています。コマンド実行にタイムリミットよりも長い時間がかかった時、コマンド実行がキャンセルされ上記の警告が表示されます。これは意図的な動作です。 タイムリミットは [`command_timeout`key](../config/#prompt) を用いて変更可能ですので、お望みであればタイムリミットを長くできます。 更に以下のデバッグ手順によって、どのコマンドの実行に時間がかかっているかや、それを高速化できるかについて確認できます。 最終手段として、環境変数 `STARSHIP_LOG` に `error` を設定することでこれらの警告を非表示にできます。 ## よくわからない記号を見つけました。これはどういった意味ですか? @@ -66,21 +66,21 @@ Starship executes different commands to get information to display in the prompt ## Starshipがなにか想定外の挙動をしているとき、どのようにデバッグすればよいですか? -You can enable the debug logs by using the `STARSHIP_LOG` env var. These logs can be very verbose so it is often useful to use the `module` command if you are trying to debug a particular module, for example, if you are trying to debug the `rust` module you could run the following command to get the trace logs and output from the module. +環境変数 `STARSHIP_LOG` を使用してデバッグログを有効にできます。 特定のモジュールをデバグしようとしているとき、デバッグログが過度に冗長になることがありますが、その場合は `module` コマンドが役立ちます。例えば、`rust` モジュールをデバグしようとしているとき、以下のコマンドを用いてこのモジュールからのログと出力を取得できます。 ```sh env STARSHIP_LOG=trace starship module rust ``` -If starship is being slow you can try using the `timings` command to see if there is a particular module or command that is to blame. +Starship が遅い場合は、 `timings` コマンドを使って特定のモジュールまたはコマンドが悪さをしているか確認できます。 ```sh env STARSHIP_LOG=trace starship timings ``` -This will output the trace log and a breakdown of all modules that either took more than 1ms to execute or produced some output. +トレースログおよび、実行に 1 ミリ秒以上かかったか何か出力をした全てのモジュールの個別解析を出力します。 -Finally if you find a bug you can use the `bug-report` command to create a GitHub issue. +バグを見つけた場合は、 `bug-report` コマンドを用いて GitHub の問題を作成できます。 ```sh starship bug-report @@ -121,10 +121,10 @@ Starship をインストールスクリプトを使用してインストール sh -c 'rm "$(command -v 'starship')"' ``` -## How do I install Starship without `sudo`? +## `sudo` を使わずに Starship をインストールするにはどうすればいいですか? -The shell install script (`https://starship.rs/install.sh`) only attempts to use `sudo` if the target installation directory is not writable by the current user. The default installation diretory is the value of the `$BIN_DIR` environment variable or `/usr/local/bin` if `$BIN_DIR` is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without `sudo`. For example, `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` uses the `-b` command line option of the install script to set the installation directory to `~/.local/bin`. +インストールシェルスクリプト (`https://starship.rs/install.sh`) はインストール先のディレクトリが現在のユーザによって書き込みできない時に限り `sudo` の使用を試みます。 既定のインストールディレクトリは、 `$BIN_DIR` 環境変数の値、または`$BIN_DIR` が設定されていない場合は `/usr/local/bin` です。 インストールディレクトリを現在のユーザが書き込みできるディレクトリに設定すれば、 `sudo` なしで Starship をインストールできます。 例えば `curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin` は、インストールスクリプトにコマンドラインオプション `-b` を指定してインストールディレクトリを `~/.local/bin` に設定します。 -For a non-interactive installation of Starship, don't forget to add the `-y` option to skip the confirmation. Check the source of the installation script for a list of all supported installation options. +Starship の非対話形式でのインストールでは、確認をスキップするために `-y` オプションを追加することを忘れないでください。 対応しているオプションの一覧についてはインストールスクリプトのソースをご確認ください。 -When using a package manager, see the documentation for your package manager about installing with or without `sudo`. +パッケージマネージャーを使う時は、 `sudo` を使ったまたは使わないインストールに関して、パッケージマネージャーのドキュメントを参照してください。 diff --git a/docs/ja-JP/guide/README.md b/docs/ja-JP/guide/README.md index 1d3b668b..42e7aa1c 100644 --- a/docs/ja-JP/guide/README.md +++ b/docs/ja-JP/guide/README.md @@ -35,7 +35,7 @@
    Stand With Ukraine

    @@ -161,7 +161,7 @@ align="right" /> -**シェル用の最小限の、非常に高速で、無限にカスタマイズ可能なプロンプトです!** +**最小限の、非常に高速で、無限にカスタマイズ可能なシェル用のプロンプトです!** - **高速:** _本当に_ 高速です! 🚀 - **カスタマイズ可能:** プロンプトのあらゆる側面を構成します。 @@ -431,6 +431,8 @@ Starshipのさらなるカスタマイズを目指すなら以下を参考にし [スポンサーになることで](https://github.com/sponsors/starship)このプロジェクトをサポートできます。 名前やロゴがあなたのホームページへのリンクとともに表示されます。 +- Free code signing provided by [SignPath.io](https://signpath.io), certificate by [SignPath Foundation](https://signpath.org) +


    Starship rocket icon diff --git a/docs/ja-JP/installing/README.md b/docs/ja-JP/installing/README.md index 357f8a65..1701bed4 100644 --- a/docs/ja-JP/installing/README.md +++ b/docs/ja-JP/installing/README.md @@ -5,7 +5,7 @@ Starship をインストールするには、以下の2つのことを行う必 1. ** starship ** のバイナリをコンピューター上に取得する 1. Init スクリプトを修正することで、Starship バイナリをプロンプトとして使用するようシェルに指示する -For most users, the instructions on [the main page](../guide/#🚀-installation) will work great. しかし、より特殊なプラットフォームでは、別の操作が必要になることがあります。 +ほとんどの場合、[メインページ](../guide/#🚀-installation)の指示に従えば問題なく動作します。 しかし、より特殊なプラットフォームでは、別の操作が必要になることがあります。 プラットフォームは無数に存在するため、メインの README.md ファイルには書ききれません。そこで、このページでは、コミュニティにより提供された他のプラットフォーム向けのインストール方法について紹介します。 あなたが使用しているプラットフォームが見当たりませんか? その場合は是非、見つけた方法をここに追加してください。 @@ -45,7 +45,7 @@ Funtoo Linuxでは、Portageの[core-kit](https://github.com/funtoo/core-kit/tre emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### バイナリの取得 diff --git a/docs/ja-JP/migrating-to-0.45.0/README.md b/docs/ja-JP/migrating-to-0.45.0/README.md index 48cc17f6..a73efb3c 100644 --- a/docs/ja-JP/migrating-to-0.45.0/README.md +++ b/docs/ja-JP/migrating-to-0.45.0/README.md @@ -1,4 +1,4 @@ -# v0.45への移行 +# v0.45.0への移行 Starship v0.45.0は、v1.0.0の準備として互換性の無い変更を含むリリースになります。 私たちはより多くのカスタマイズを可能にするために、プロンプトでの設定方法にいくつかの大きな変更を加えました。 diff --git a/docs/ja-JP/presets/README.md b/docs/ja-JP/presets/README.md index 0cbdece9..f34cda6b 100644 --- a/docs/ja-JP/presets/README.md +++ b/docs/ja-JP/presets/README.md @@ -12,15 +12,15 @@ ## [No Nerd Fonts](./no-nerd-font.md) -This preset changes the symbols for several modules so that no Nerd Font symbols are used anywhere in the prompt. +このプリセットは一部のモジュールで使われるシンボルを変更して、Nerd Font シンボルをどこにも使わないようにします。 ::: tip -This preset will become the default preset [in a future release of starship](https://github.com/starship/starship/pull/3544). +このプリセットは [Starship の将来のリリース](https://github.com/starship/starship/pull/3544) でデフォルトのプリセットになります。 ::: -[Click to view No Nerd Font preset](./no-nerd-font) +[No Nerd Font プリセットを表示するにはクリックしてください。](./no-nerd-font) ## [Bracketed Segments](./bracketed-segments.md) @@ -42,7 +42,7 @@ This preset will become the default preset [in a future release of starship](htt ## [No Empty Icons](./no-empty-icons.md) -This preset does not show icons if the toolset is not found. +ツールセットが見つからない場合、このプリセットはアイコンを表示しません。 [![Empty Icons プリセットのスクリーンショット](/presets/img/no-empty-icons.png "No Runtime Versionsプリセットを表示するにはクリックしてください")](./no-empty-icons.md) @@ -62,16 +62,16 @@ This preset does not show icons if the toolset is not found. このプリセットは[tokyo-night-vscode-theme](https://github.com/enkia/tokyo-night-vscode-theme)を参考にしています。 -[![Tokyo Night プリセットのスクリーンショット](/presets/img/tokyo-night.png "Click to view Tokyo Night preset")](./tokyo-night) +[![Tokyo Night プリセットのスクリーンショット](/presets/img/tokyo-night.png "Tokyo Night プリセットを表示するにはクリックしてください")](./tokyo-night) ## [Gruvbox Rainbow](./gruvbox-rainbow.md) -This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). +このプリセットは [Pastel Powerline](./pastel-powerline.md) と [Tokyo Night](./tokyo-night.md) に強くインスパイアされています。 -[![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png "Click to view Gruvbox Rainbow preset")](./gruvbox-rainbow) +[![Gruvbox Rainbow プリセットのスクリーンショット](/presets/img/gruvbox-rainbow.png "Gruvbox Rainbow プリセットを表示するにはクリックしてください")](./gruvbox-rainbow) ## [Jetpack](./jetpack.md) -This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. +[geometry](https://github.com/geometry-zsh/geometry) と [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) のプロンプトにインスパイアされた擬似ミニマリストプリセットです。 -[![Screenshot of Jetpack preset](/presets/img/jetpack.png "Click to view Jetpack preset")](./jetpack) +[![Jetpack プリセットのスクリーンショット](/presets/img/jetpack.png "Jetpack プリセットを表示するにはクリックしてください")](./jetpack) diff --git a/docs/ja-JP/presets/gruvbox-rainbow.md b/docs/ja-JP/presets/gruvbox-rainbow.md index f4452044..6fd3ed0d 100644 --- a/docs/ja-JP/presets/gruvbox-rainbow.md +++ b/docs/ja-JP/presets/gruvbox-rainbow.md @@ -1,12 +1,12 @@ [プリセット一覧に戻る](./#gruvbox-rainbow) -# Gruvbox Rainbow Preset +# Gruvbox Rainbow プリセット -This preset is heavily inspired by [Pastel Powerline](./pastel-powerline.md), and [Tokyo Night](./tokyo-night.md). +このプリセットは [Pastel Powerline](./pastel-powerline.md) と [Tokyo Night](./tokyo-night.md) に強くインスパイアされています。 -![Screenshot of Gruvbox Rainbow preset](/presets/img/gruvbox-rainbow.png) +![Gruvbox Rainbow プリセットのスクリーンショット](/presets/img/gruvbox-rainbow.png) -### 必要なもの +### 前提条件 - [Nerd Font](https://www.nerdfonts.com/)のインストールとターミナルでの有効化 diff --git a/docs/ja-JP/presets/jetpack.md b/docs/ja-JP/presets/jetpack.md index 01721091..2263c6f6 100644 --- a/docs/ja-JP/presets/jetpack.md +++ b/docs/ja-JP/presets/jetpack.md @@ -1,17 +1,17 @@ [プリセット一覧に戻る](./#jetpack) -# Jetpack Preset +# Jetpack プリセット -This is a pseudo minimalist preset inspired by the [geometry](https://github.com/geometry-zsh/geometry) and [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) prompts. +[geometry](https://github.com/geometry-zsh/geometry) と [spaceship](https://github.com/spaceship-prompt/spaceship-prompt) のプロンプトにインスパイアされた擬似ミニマリストプリセットです。 -> Jetpack uses the terminal's color theme. +> Jetpack はターミナルのカラーテーマを使用します。 -![Screenshot of Jetpack preset](/presets/img/jetpack.png) +![Jetpack プリセットのスクリーンショット](/presets/img/jetpack.png) -### Prerequisite +### 前提条件 -- Requires a shell with [`right-prompt`](https://starship.rs/advanced-config/#enable-right-prompt) support. -- [Jetbrains Mono](https://www.jetbrains.com/lp/mono/) is recommended. +- [`右プロンプト`](https://starship.rs/advanced-config/#enable-right-prompt) に対応したシェルが必要です。 +- [Jetbrain Mono](https://www.jetbrains.com/lp/mono/) が推奨されます。 ### 設定 diff --git a/docs/ja-JP/presets/no-empty-icons.md b/docs/ja-JP/presets/no-empty-icons.md index c8678429..99941c46 100644 --- a/docs/ja-JP/presets/no-empty-icons.md +++ b/docs/ja-JP/presets/no-empty-icons.md @@ -2,7 +2,7 @@ # No Empty Icons プリセット -If toolset files are identified the toolset icon is displayed. If the toolset is not found to determine its version number, it is not displayed. This preset changes the behavior to display the icon only if the toolset information can be determined. +ツールセットファイルが特定できたときに、ツールセットアイコンを表示します。 ツールセットが見つかってバージョン番号を特定できない限りは、アイコンは表示されません。 このプリセットは、ツールセット情報が特定できる場合にのみアイコンを表示するように動作を変更します。 ![Empty Icons プリセットのスクリーンショット](/presets/img/no-empty-icons.png) diff --git a/docs/ja-JP/presets/no-nerd-font.md b/docs/ja-JP/presets/no-nerd-font.md index a8bf13e6..d7d3af6c 100644 --- a/docs/ja-JP/presets/no-nerd-font.md +++ b/docs/ja-JP/presets/no-nerd-font.md @@ -2,11 +2,11 @@ # No Nerd Fonts プリセット -This preset restricts the use of symbols to those from emoji and powerline sets. +このプリセットは使用するシンボルを絵文字や powerline のセットに制限します。 -This means that even without a Nerd Font installed, you should be able to view all module symbols. +つまり Nerd Font をインストールしなくても、すべてのモジュールのシンボルを正しく表示できます。 -This preset will become the default preset in a future release of starship. +このプリセットは、将来の Starship のリリースで既定のプリセットになります。 ### 設定 diff --git a/docs/ko-KR/README.md b/docs/ko-KR/README.md index 3654f0ba..de776f28 100644 --- a/docs/ko-KR/README.md +++ b/docs/ko-KR/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: 크로스-셸 프롬프트" description: Starship은 아무 셸에나 적용할 수 있는 작고, 매우 빠르며, 무한히 커스텀 가능한 프롬프트입니다! 필요한 정보를 깔끔하고 간략하게 표시합니다. Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, 및 PowerShell에 빠르게 설치할 수 있습니다. --- + +


    Starship 로켓 아이콘 diff --git a/docs/ko-KR/installing/README.md b/docs/ko-KR/installing/README.md index 5b8fca96..6b503ea5 100644 --- a/docs/ko-KR/installing/README.md +++ b/docs/ko-KR/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/nl-NL/README.md b/docs/nl-NL/README.md index 42829c8a..2432d068 100644 --- a/docs/nl-NL/README.md +++ b/docs/nl-NL/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/nl-NL/installing/README.md b/docs/nl-NL/installing/README.md index d2bc69f5..17c789bf 100644 --- a/docs/nl-NL/installing/README.md +++ b/docs/nl-NL/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/no-NO/README.md b/docs/no-NO/README.md index 6f82d6a9..cfe93a61 100644 --- a/docs/no-NO/README.md +++ b/docs/no-NO/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/no-NO/installing/README.md b/docs/no-NO/installing/README.md index b5eaa6c4..016edc4a 100644 --- a/docs/no-NO/installing/README.md +++ b/docs/no-NO/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/pl-PL/README.md b/docs/pl-PL/README.md index 828d2b1d..1f7b4e7c 100644 --- a/docs/pl-PL/README.md +++ b/docs/pl-PL/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Wiersz poleceń dla dowolnej powłoki" description: Starship to minimalny, szybki i ekstremalnie konfigurowalny wiersz poleceń dla każdej powłoki! Pokazuje informacje których potrzebujesz, pozostając elegancki i minimalny. Szybka instalacja dostępna dla powłok Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd i PowerShell. --- + +


    Starship rocket icon diff --git a/docs/pl-PL/installing/README.md b/docs/pl-PL/installing/README.md index fb70353d..0f3cd016 100644 --- a/docs/pl-PL/installing/README.md +++ b/docs/pl-PL/installing/README.md @@ -45,7 +45,7 @@ Na Funtoo Linux, starship może być zainstalowany przez Portage z [core-kit](ht emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/pt-BR/README.md b/docs/pt-BR/README.md index 20ee29d6..33270599 100644 --- a/docs/pt-BR/README.md +++ b/docs/pt-BR/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: O Starship é o prompt minimalista, extremamente rápido e extremamente personalizável para qualquer shell! Mostra as informações que você precisa, mantendo-se elegante e minimalista. Instalação rápida disponível para Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd e PowerShell. --- + +


    Ícone de foguete do Starship diff --git a/docs/pt-BR/installing/README.md b/docs/pt-BR/installing/README.md index 9380f9a6..b288853b 100644 --- a/docs/pt-BR/installing/README.md +++ b/docs/pt-BR/installing/README.md @@ -45,7 +45,7 @@ No Funtoo Linux, o starship pode ser instalado a partir do [core-kit](https://gi emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Obtendo o Binário diff --git a/docs/pt-PT/README.md b/docs/pt-PT/README.md index baeca74a..a8b2141d 100644 --- a/docs/pt-PT/README.md +++ b/docs/pt-PT/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/pt-PT/installing/README.md b/docs/pt-PT/installing/README.md index 9b835f5a..4218a142 100644 --- a/docs/pt-PT/installing/README.md +++ b/docs/pt-PT/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/ru-RU/README.md b/docs/ru-RU/README.md index 5f18a1f6..b5fc82d1 100644 --- a/docs/ru-RU/README.md +++ b/docs/ru-RU/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship - минимальная, быстрая и бесконечная настраиваемая командная строка для любой оболочки! Показывает нужную вам информацию, оставаясь красивой и минималистичной. Быстрая установка доступна для Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, и PowerShell. --- + +


    Иконка ракеты Starship diff --git a/docs/ru-RU/installing/README.md b/docs/ru-RU/installing/README.md index 5fbdb6dd..bdc83b55 100644 --- a/docs/ru-RU/installing/README.md +++ b/docs/ru-RU/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Getting the Binary diff --git a/docs/tr-TR/README.md b/docs/tr-TR/README.md index f7dac204..656ad464 100644 --- a/docs/tr-TR/README.md +++ b/docs/tr-TR/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship, her prompt için minimal, son derece hızlı ve son derece özelleştirilebilir bir shelldir! Şık ve minimal kalırken ihtiyacınız olan bilgileri gösterir. Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd ve PowerShell için hızlı kurulum mevcuttur. --- + +


    Starship roket simgesi diff --git a/docs/tr-TR/installing/README.md b/docs/tr-TR/installing/README.md index 7164823a..ccf33024 100644 --- a/docs/tr-TR/installing/README.md +++ b/docs/tr-TR/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Binary Alma diff --git a/docs/uk-UA/README.md b/docs/uk-UA/README.md index e85fc1f0..e9ec23ee 100644 --- a/docs/uk-UA/README.md +++ b/docs/uk-UA/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Простий, супер швидкий та безмежно адаптивний командний рядок для будь-якої оболонки! Показує потрібну інформацію залишаючись блискучим та мінімальним. Швидке встановлення доступне для Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd і PowerShell. --- + +


    Starship rocket icon diff --git a/docs/uk-UA/installing/README.md b/docs/uk-UA/installing/README.md index e8b7c7d8..8c5e88c3 100644 --- a/docs/uk-UA/installing/README.md +++ b/docs/uk-UA/installing/README.md @@ -45,7 +45,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.term emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Завантаження бінарного файлу diff --git a/docs/vi-VN/README.md b/docs/vi-VN/README.md index 8a62c9de..cd40c891 100644 --- a/docs/vi-VN/README.md +++ b/docs/vi-VN/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship: Cross-Shell Prompt" description: Starship là prompt nhỏ, cực nhanh, và khả năng tuỳ biến mạnh mẽ cho bất kì shell nào! Hiển thị thông tin bạn cần, trong khi vẫn giữ cho đẹp và nhỏ gọn. Quick installation available for Bash, Fish, ZSH, Ion, Tcsh, Elvish, Nu, Xonsh, Cmd, and PowerShell. --- + +


    Starship rocket icon diff --git a/docs/vi-VN/installing/README.md b/docs/vi-VN/installing/README.md index e7b26d43..cbd0ac7f 100644 --- a/docs/vi-VN/installing/README.md +++ b/docs/vi-VN/installing/README.md @@ -45,7 +45,7 @@ On Funtoo Linux, starship can be installed from [core-kit](https://github.com/fu emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### Lấy tệp tin nhị phân diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index ec91c61a..8355aa50 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship:可用于各种 Shell 的提示符" description: Starship是一款轻量、迅速、可客制化的高颜值终端! 只显示所需要的信息,将优雅和轻量化合二为一。 可以为Bash、Fish、ZSH、Ion、Tcsh、Elvish、Nu、Xonsh、Cmd和PowerShell执行快速安装。 --- + +


    Starship 图标 diff --git a/docs/zh-CN/installing/README.md b/docs/zh-CN/installing/README.md index 2d7c7a2a..3c11652e 100644 --- a/docs/zh-CN/installing/README.md +++ b/docs/zh-CN/installing/README.md @@ -45,7 +45,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.term emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### 获取二进制文件 diff --git a/docs/zh-TW/README.md b/docs/zh-TW/README.md index 194c5dba..2aa0ae60 100644 --- a/docs/zh-TW/README.md +++ b/docs/zh-TW/README.md @@ -25,6 +25,20 @@ metaTitle: "Starship:跨 Shell 提示字元" description: Starship 是適合任何 shell 的最小、極速、高度客製化的提示字元! 顯示你需要的訊息,同時保持順暢與最小化。 有針對 Bash、Fish、ZSH、Ion 、Tcsh、Elvish、Nu、Xonsh、Cmd 與 Powershell 的快速安裝指南。 --- + +


    Starship rocket icon diff --git a/docs/zh-TW/installing/README.md b/docs/zh-TW/installing/README.md index 6729e5a1..83e97fe9 100644 --- a/docs/zh-TW/installing/README.md +++ b/docs/zh-TW/installing/README.md @@ -45,7 +45,7 @@ curl -sS https://starship.rs/install.sh | sh -s -- --bin-dir /data/data/com.term emerge app-shells/starship ``` -## [Nix](https://nixos.wiki/wiki/Nix) +## [Nix](https://wiki.nixos.org/wiki/Nix) ### 獲得執行檔 From 0d3c52314e6bced9b537b7671643a56f0f206990 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 16:47:27 +0000 Subject: [PATCH 296/651] build(deps): update toml crates --- Cargo.lock | 22 +++++++++++----------- Cargo.toml | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f41f7970..8ab20097 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2642,9 +2642,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" dependencies = [ "serde", ] @@ -2822,8 +2822,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.12", - "toml_edit 0.22.12", + "toml 0.8.13", + "toml_edit 0.22.13", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3078,22 +3078,22 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.12" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" dependencies = [ "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.12", + "toml_edit 0.22.13", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" dependencies = [ "serde", ] @@ -3111,9 +3111,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.12" +version = "0.22.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" +checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" dependencies = [ "indexmap 2.2.6", "serde", diff --git a/Cargo.toml b/Cargo.toml index 9e9f376d..865613ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.3", optional = true } strsim = "0.11.1" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.12", features = ["preserve_order"] } -toml_edit = "0.22.12" +toml = { version = "0.8.13", features = ["preserve_order"] } +toml_edit = "0.22.13" unicode-segmentation = "1.11.0" unicode-width = "0.1.12" urlencoding = "2.1.3" From 49300b65782a56f9b6d6d04b4289250ee7eae153 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Thu, 16 May 2024 16:25:12 +0900 Subject: [PATCH 297/651] Fix mobile styles with kawaii logo --- docs/.vitepress/theme/index.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/.vitepress/theme/index.css b/docs/.vitepress/theme/index.css index 293e702a..2f00bc0f 100644 --- a/docs/.vitepress/theme/index.css +++ b/docs/.vitepress/theme/index.css @@ -12,6 +12,8 @@ .VPHero .image-container { transform: none; height: auto; + display: flex; + justify-content: center; } .VPHero .image img { @@ -23,6 +25,7 @@ .VPHero .image img.uwu { max-height: 290px; + max-width: 80vw; } .VPHero .container .actions { From 0f13ff290603d1184183456c2d954d80f24c6983 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 01:21:41 +0000 Subject: [PATCH 298/651] build(deps): update rust crate open to 5.1.3 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8ab20097..fe01d019 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,9 +2054,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "5.1.2" +version = "5.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" +checksum = "2eb49fbd5616580e9974662cb96a3463da4476e649a7e4b258df0de065db0657" dependencies = [ "is-wsl", "libc", diff --git a/Cargo.toml b/Cargo.toml index 865613ef..fa75277d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,7 @@ log = { version = "0.4.21", features = ["std"] } notify-rust = { version = "4.11.0", optional = true } nu-ansi-term = "0.50.0" once_cell = "1.19.0" -open = "5.1.2" +open = "5.1.3" # update os module config and tests when upgrading os_info os_info = "3.8.2" path-slash = "0.2.1" From ce491d8b1674c8b06ca6e3dc55c3d95919e4dab2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 22:53:31 +0000 Subject: [PATCH 299/651] build(deps): update rust crate schemars to 0.8.20 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fe01d019..1c6268f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2533,9 +2533,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6e7ed6919cb46507fb01ff1654309219f62b4d603822501b0b80d42f6f21ef" +checksum = "b0218ceea14babe24a4a5836f86ade86c1effbc198164e619194cb5069187e29" dependencies = [ "dyn-clone", "indexmap 1.9.3", @@ -2547,9 +2547,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185f2b7aa7e02d418e453790dde16890256bbd2bcd04b7dc5348811052b53f49" +checksum = "3ed5a1ccce8ff962e31a165d41f6e2a2dd1245099dc4d594f5574a86cd90f4d3" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index fa75277d..9967f9b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -96,7 +96,7 @@ home = "0.5.9" shell-words = "1.1.0" [dependencies.schemars] -version = "0.8.19" +version = "0.8.20" optional = true features = ["preserve_order", "indexmap2"] From fb717d0f659bcd452678b8ef409373a7f059a094 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 02:42:58 +0000 Subject: [PATCH 300/651] build(deps): update dependency vitepress to ^1.2.0 --- docs/package-lock.json | 259 +++++++++++++++++++++++------------------ docs/package.json | 2 +- 2 files changed, 147 insertions(+), 114 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index ad8af265..86990765 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.1.4" + "vitepress": "^1.2.0" } }, "node_modules/@adobe/css-tools": { @@ -191,10 +191,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -622,7 +623,8 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.13.0", @@ -794,18 +796,20 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.3.0.tgz", - "integrity": "sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.0.tgz", + "integrity": "sha512-NIEAi5U5R7BLkbW1pG/ZKu3eb1lzc3/+jD0lFsuxMT7zjaf9bbNwdNyMr7zh/Zl8EXQtQ+MYBAt5G+JLu+5DlA==", + "dev": true, + "license": "MIT" }, "node_modules/@shikijs/transformers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.3.0.tgz", - "integrity": "sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.0.tgz", + "integrity": "sha512-qGfHe1ECiqfE2STPWvfogIj/9Q0SK+MCRJdoITkW7AmFuB7DmbFnBT2US84+zklJOB51MzNO8RUXZiauWssJlQ==", "dev": true, + "license": "MIT", "dependencies": { - "shiki": "1.3.0" + "shiki": "1.6.0" } }, "node_modules/@types/estree": { @@ -815,26 +819,29 @@ "dev": true }, "node_modules/@types/linkify-it": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", - "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" }, "node_modules/@types/markdown-it": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", - "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "@types/linkify-it": "^5", + "@types/mdurl": "^2" } }, "node_modules/@types/mdurl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", - "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/web-bluetooth": { "version": "0.0.20", @@ -856,39 +863,42 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.25.tgz", - "integrity": "sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", + "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.24.4", - "@vue/shared": "3.4.25", + "@vue/shared": "3.4.27", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.25.tgz", - "integrity": "sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", + "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.25", - "@vue/shared": "3.4.25" + "@vue/compiler-core": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.25.tgz", - "integrity": "sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", + "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.24.4", - "@vue/compiler-core": "3.4.25", - "@vue/compiler-dom": "3.4.25", - "@vue/compiler-ssr": "3.4.25", - "@vue/shared": "3.4.25", + "@vue/compiler-core": "3.4.27", + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.38", @@ -896,31 +906,34 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.25.tgz", - "integrity": "sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", + "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.25", - "@vue/shared": "3.4.25" + "@vue/compiler-dom": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/devtools-api": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.0.27.tgz", - "integrity": "sha512-BFCFCusSDcw2UcOFD/QeK7OxD1x2C/m+uAN30Q7jLKECSW53hmz0urzJmX834GuWDZX/hIxkyUKnLLfEIP1c/w==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.2.1.tgz", + "integrity": "sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^7.0.27" + "@vue/devtools-kit": "^7.2.1" } }, "node_modules/@vue/devtools-kit": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.0.27.tgz", - "integrity": "sha512-/A5xM38pPCFX5Yhl/lRFAzjyK6VNsH670nww2WbjFKWqlu3I+lMxWKzQkCW6A1V8bduITgl2kHORfg2gTw6QaA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.2.1.tgz", + "integrity": "sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^7.0.27", + "@vue/devtools-shared": "^7.2.1", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", @@ -931,62 +944,68 @@ } }, "node_modules/@vue/devtools-shared": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.0.27.tgz", - "integrity": "sha512-4VxtmZ6yjhiSloqZZq2UYU0TBGxOJ8GxWvp5OlAH70zYqi0FIAyWGPkOhvfoZ7DKQyv2UU0mmKzFHjsEkelGyQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.2.1.tgz", + "integrity": "sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==", "dev": true, + "license": "MIT", "dependencies": { "rfdc": "^1.3.1" } }, "node_modules/@vue/reactivity": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.25.tgz", - "integrity": "sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz", + "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/shared": "3.4.25" + "@vue/shared": "3.4.27" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.25.tgz", - "integrity": "sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz", + "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.25", - "@vue/shared": "3.4.25" + "@vue/reactivity": "3.4.27", + "@vue/shared": "3.4.27" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.25.tgz", - "integrity": "sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", + "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/runtime-core": "3.4.25", - "@vue/shared": "3.4.25", + "@vue/runtime-core": "3.4.27", + "@vue/shared": "3.4.27", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.25.tgz", - "integrity": "sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz", + "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.25", - "@vue/shared": "3.4.25" + "@vue/compiler-ssr": "3.4.27", + "@vue/shared": "3.4.27" }, "peerDependencies": { - "vue": "3.4.25" + "vue": "3.4.27" } }, "node_modules/@vue/shared": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.25.tgz", - "integrity": "sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==", - "dev": true + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", + "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "dev": true, + "license": "MIT" }, "node_modules/@vueuse/core": { "version": "10.9.0", @@ -1222,7 +1241,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", @@ -1248,6 +1268,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -1297,7 +1318,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/focus-trap": { "version": "7.5.4", @@ -1356,7 +1378,8 @@ "version": "5.5.3", "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/inflight": { "version": "1.0.6", @@ -1383,6 +1406,7 @@ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } @@ -1417,7 +1441,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ms": { "version": "2.1.2", @@ -1471,7 +1496,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", @@ -1521,7 +1547,8 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rollup": { "version": "4.13.0", @@ -1571,12 +1598,13 @@ "peer": true }, "node_modules/shiki": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.3.0.tgz", - "integrity": "sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.0.tgz", + "integrity": "sha512-P31ROeXcVgW/k3Z+vUUErcxoTah7ZRaimctOpzGuqAntqnnSmx1HOsvnbAB8Z2qfXPRhw61yptAzCsuKOhTHwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@shikijs/core": "1.3.0" + "@shikijs/core": "1.6.0" } }, "node_modules/source-map": { @@ -1604,6 +1632,7 @@ "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -1639,10 +1668,11 @@ "dev": true }, "node_modules/vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", @@ -1694,26 +1724,28 @@ } }, "node_modules/vitepress": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.1.4.tgz", - "integrity": "sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.0.tgz", + "integrity": "sha512-m/4PAQVyPBvKHV7sFKwcmNmrsoSxdjnw/Eg40YyuBSaBHhrro9ubnfWk5GT0xGfE98LqjZkHCWKNJlR6G/7Ayg==", "dev": true, + "license": "MIT", "dependencies": { "@docsearch/css": "^3.6.0", "@docsearch/js": "^3.6.0", - "@shikijs/core": "^1.3.0", - "@shikijs/transformers": "^1.3.0", - "@types/markdown-it": "^14.0.1", + "@shikijs/core": "^1.5.2", + "@shikijs/transformers": "^1.5.2", + "@types/markdown-it": "^14.1.1", "@vitejs/plugin-vue": "^5.0.4", - "@vue/devtools-api": "^7.0.27", + "@vue/devtools-api": "^7.2.0", + "@vue/shared": "^3.4.27", "@vueuse/core": "^10.9.0", "@vueuse/integrations": "^10.9.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", - "shiki": "^1.3.0", - "vite": "^5.2.10", - "vue": "^3.4.25" + "shiki": "^1.5.2", + "vite": "^5.2.11", + "vue": "^3.4.27" }, "bin": { "vitepress": "bin/vitepress.js" @@ -1732,16 +1764,17 @@ } }, "node_modules/vue": { - "version": "3.4.25", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz", - "integrity": "sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==", + "version": "3.4.27", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz", + "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", "dev": true, + "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.25", - "@vue/compiler-sfc": "3.4.25", - "@vue/runtime-dom": "3.4.25", - "@vue/server-renderer": "3.4.25", - "@vue/shared": "3.4.25" + "@vue/compiler-dom": "3.4.27", + "@vue/compiler-sfc": "3.4.27", + "@vue/runtime-dom": "3.4.27", + "@vue/server-renderer": "3.4.27", + "@vue/shared": "3.4.27" }, "peerDependencies": { "typescript": "*" diff --git a/docs/package.json b/docs/package.json index 2d52ad97..c54aa05f 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.1.4" + "vitepress": "^1.2.0" } } From 50a6b846045899c88d95b063a6b939a6dcb72a5c Mon Sep 17 00:00:00 2001 From: Martin <14993038+RivenSkaye@users.noreply.github.com> Date: Wed, 22 May 2024 18:02:53 +0200 Subject: [PATCH 301/651] fix: improve non-msvc windows support by bumping stable dependencies (#5989) Confirmed to build - running tests --- Cargo.lock | 787 +++++++++++++++++++++++++---------------------------- Cargo.toml | 8 +- 2 files changed, 372 insertions(+), 423 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1c6268f8..85a80c02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -22,18 +22,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "android-tzdata" @@ -52,47 +52,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.7" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -100,15 +101,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.77" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arraydeque" @@ -128,32 +129,30 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" dependencies = [ - "event-listener 5.2.0", - "event-listener-strategy 0.5.1", + "event-listener 5.3.0", + "event-listener-strategy 0.5.2", "futures-core", "pin-project-lite", ] [[package]] name = "async-channel" -version = "2.1.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 4.0.1", - "event-listener-strategy 0.4.0", + "event-listener-strategy 0.5.2", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" dependencies = [ - "async-lock 3.3.0", "async-task", "concurrent-queue", "fastrand", @@ -163,11 +162,11 @@ dependencies = [ [[package]] name = "async-fs" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc19683171f287921f2405677dd2ed2549c3b3bda697a563ebc3a121ace2aba1" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock 3.3.0", + "async-lock", "blocking", "futures-lite", ] @@ -178,7 +177,7 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ - "async-lock 3.3.0", + "async-lock", "cfg-if", "concurrent-queue", "futures-io", @@ -191,40 +190,31 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - [[package]] name = "async-lock" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener 4.0.1", + "event-listener 4.0.3", "event-listener-strategy 0.4.0", "pin-project-lite", ] [[package]] name = "async-process" -version = "2.2.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d999d925640d51b662b7b4e404224dd81de70f4aa4a199383c2c5e5b86885fa3" +checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d" dependencies = [ "async-channel", "async-io", - "async-lock 3.3.0", + "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.2.0", + "event-listener 5.3.0", "futures-lite", "rustix", "tracing", @@ -233,23 +223,23 @@ dependencies = [ [[package]] name = "async-recursion" -version = "1.0.5" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" dependencies = [ "async-io", - "async-lock 2.8.0", + "async-lock", "atomic-waker", "cfg-if", "futures-core", @@ -257,24 +247,24 @@ dependencies = [ "rustix", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "async-task" -version = "4.7.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.79" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -285,9 +275,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "base64" @@ -303,9 +293,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "block" @@ -333,25 +323,23 @@ dependencies = [ [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" dependencies = [ "async-channel", - "async-lock 3.3.0", + "async-lock", "async-task", - "fastrand", "futures-io", "futures-lite", "piper", - "tracing", ] [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", "regex-automata", @@ -360,9 +348,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytesize" @@ -372,12 +360,9 @@ checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" [[package]] name = "cfg-if" @@ -447,7 +432,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -458,9 +443,9 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "clru" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" +checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" [[package]] name = "cmake" @@ -473,24 +458,24 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -544,29 +529,28 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb9105919ca8e40d437fc9cbb8f1975d916f1bd28afe795a48aae32a2cc8920" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" dependencies = [ - "cfg-if", "crossbeam-channel", "crossbeam-deque", "crossbeam-epoch", @@ -576,54 +560,46 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.10" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.17" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-queue" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -657,24 +633,13 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "digest" version = "0.9.0" @@ -779,21 +744,21 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "either" -version = "1.9.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -822,7 +787,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -844,9 +809,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -864,15 +829,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.3" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "4.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", @@ -881,9 +840,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" +checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" dependencies = [ "concurrent-queue", "parking", @@ -896,17 +855,17 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.1", + "event-listener 4.0.3", "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.2.0", + "event-listener 5.3.0", "pin-project-lite", ] @@ -918,9 +877,9 @@ checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "filedescriptor" @@ -941,15 +900,15 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "windows-sys 0.52.0", ] [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "libz-ng-sys", @@ -992,9 +951,9 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "fastrand", "futures-core", @@ -1053,9 +1012,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -1064,9 +1023,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.62.0" +version = "0.63.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5631c64fb4cd48eee767bf98a3cbc5c9318ef3bb71074d4c099a2371510282b6" +checksum = "984c5018adfa7a4536ade67990b3ebc6e11ab57b3d6cd9968de0947ca99b4b06" dependencies = [ "gix-actor", "gix-commitgraph", @@ -1105,16 +1064,16 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.31.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c3a3bde455ad2ee8ba8a195745241ce0b770a8a26faae59fcf409d01b28c46" +checksum = "d69c59d392c7e6c94385b6fd6089d6df0fe945f32b4357687989f3aee253cd7f" dependencies = [ "bstr", "gix-date", "gix-utils", "itoa", "thiserror", - "winnow 0.6.5", + "winnow 0.6.8", ] [[package]] @@ -1151,9 +1110,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7580e05996e893347ad04e1eaceb92e1c0e6a3ffe517171af99bf6b6df0ca6e5" +checksum = "53fafe42957e11d98e354a66b6bd70aeea00faf2f62dd11164188224a507c840" dependencies = [ "bstr", "gix-config-value", @@ -1167,7 +1126,7 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow 0.6.5", + "winnow 0.6.8", ] [[package]] @@ -1176,7 +1135,7 @@ version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbd06203b1a9b33a78c88252a625031b094d9e1b647260070c25b09910c0a804" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "bstr", "gix-path", "libc", @@ -1185,9 +1144,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180b130a4a41870edfbd36ce4169c7090bca70e195da783dea088dd973daa59c" +checksum = "367ee9093b0c2b04fd04c5c7c8b6a1082713534eab537597ae343663a518fa99" dependencies = [ "bstr", "itoa", @@ -1197,9 +1156,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5fbc24115b957346cd23fb0f47d830eb799c46c89cdcf2f5acc9bf2938c2d01" +checksum = "40b9bd8b2d07b6675a840b56a6c177d322d45fa082672b0dad8f063b25baf0a4" dependencies = [ "bstr", "gix-hash", @@ -1209,9 +1168,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bab49087ed3710caf77e473dc0efc54ca33d8ccc6441359725f121211482b1" +checksum = "fc27c699b63da66b50d50c00668bc0b7e90c3a382ef302865e891559935f3dbf" dependencies = [ "bstr", "dunce", @@ -1225,9 +1184,9 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.38.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4254037d20a247a0367aa79333750146a369719f0c6617fec4f5752cc62b37" +checksum = "ac7045ac9fe5f9c727f38799d002a7ed3583cd777e3322a7c4b43e3cf437dc69" dependencies = [ "crc32fast", "crossbeam-channel", @@ -1248,10 +1207,11 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2184c40e7910529677831c8b481acf788ffd92427ed21fad65b6aa637e631b8" +checksum = "3f78f7d6dcda7a5809efd73a33b145e3dce7421c460df21f32126f9732736b0c" dependencies = [ + "fastrand", "gix-features", "gix-utils", ] @@ -1262,7 +1222,7 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "682bdc43cb3c00dbedfcc366de2a849b582efd8d886215dbad2ea662ec156bb5" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "bstr", "gix-features", "gix-path", @@ -1285,17 +1245,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" dependencies = [ "gix-hash", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "parking_lot", ] [[package]] name = "gix-index" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3383122cf18655ef4c097c0b935bba5eb56983947959aaf3b0ceb1949d4dd371" +checksum = "2d8c5a5f1c58edcbc5692b174cda2703aba82ed17d7176ff4c1752eb48b1b167" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "bstr", "filetime", "fnv", @@ -1307,7 +1267,8 @@ dependencies = [ "gix-object", "gix-traverse", "gix-utils", - "hashbrown 0.14.3", + "gix-validate", + "hashbrown 0.14.5", "itoa", "libc", "memmap2", @@ -1318,9 +1279,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "13.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "651e46174dc5e7d18b7b809d31937b6de3681b1debd78618c99162cc30fcf3e1" +checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" dependencies = [ "gix-tempfile", "gix-utils", @@ -1329,20 +1290,20 @@ dependencies = [ [[package]] name = "gix-macros" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dff438f14e67e7713ab9332f5fd18c8f20eb7eb249494f6c2bf170522224032" +checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] name = "gix-object" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d4f8efae72030df1c4a81d02dbe2348e748d9b9a11e108ed6efbd846326e051" +checksum = "1fe2dc4a41191c680c942e6ebd630c8107005983c4679214fdb1007dcf5ae1df" dependencies = [ "bstr", "gix-actor", @@ -1354,14 +1315,14 @@ dependencies = [ "itoa", "smallvec", "thiserror", - "winnow 0.6.5", + "winnow 0.6.8", ] [[package]] name = "gix-odb" -version = "0.60.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8bbb43d2fefdc4701ffdf9224844d05b136ae1b9a73c2f90710c8dd27a93503" +checksum = "e92b9790e2c919166865d0825b26cc440a387c175bed1b43a2fa99c0e9d45e98" dependencies = [ "arc-swap", "gix-date", @@ -1379,9 +1340,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58bad27c7677fa6b587aab3a1aca0b6c97373bd371a0a4290677c838c9bcaf1" +checksum = "7a8da51212dbff944713edb2141ed7e002eea326b8992070374ce13a6cb610b3" dependencies = [ "clru", "gix-chunk", @@ -1424,9 +1385,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4aba68b925101cb45d6df328979af0681364579db889098a0de75b36c77b65" +checksum = "0b36752b448647acd59c9668fdd830b16d07db1e6d9c3b3af105c1605a6e23d9" dependencies = [ "gix-actor", "gix-date", @@ -1441,7 +1402,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror", - "winnow 0.6.5", + "winnow 0.6.8", ] [[package]] @@ -1460,9 +1421,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e34196e1969bd5d36e2fbc4467d893999132219d503e23474a8ad2b221cb1e8" +checksum = "63e08f8107ed1f93a83bcfbb4c38084c7cb3f6cd849793f1d5eec235f9b13b2b" dependencies = [ "bstr", "gix-date", @@ -1476,9 +1437,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7d393ae814eeaae41a333c0ff684b243121cc61ccdc5bbe9897094588047d" +checksum = "4181db9cfcd6d1d0fd258e91569dbb61f94cb788b441b5294dd7f1167a3e788f" dependencies = [ "gix-commitgraph", "gix-date", @@ -1495,7 +1456,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fddc27984a643b20dd03e97790555804f98cf07404e0e552c0ad8133266a79a1" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "gix-path", "libc", "windows-sys 0.52.0", @@ -1503,9 +1464,9 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "13.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d337955b7af00fb87120d053d87cdfb422a80b9ff7a3aa4057a99c79422dc30" +checksum = "d3b0e276cd08eb2a22e9f286a4f13a222a01be2defafa8621367515375644b99" dependencies = [ "gix-fs", "libc", @@ -1522,11 +1483,11 @@ checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" [[package]] name = "gix-traverse" -version = "0.39.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4029ec209b0cc480d209da3837a42c63801dd8548f09c1f4502c60accb62aeb" +checksum = "f20cb69b63eb3e4827939f42c05b7756e3488ef49c25c412a876691d568ee2a0" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "gix-commitgraph", "gix-date", "gix-hash", @@ -1563,9 +1524,9 @@ dependencies = [ [[package]] name = "gix-validate" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e39fc6e06044985eac19dd34d474909e517307582e462b2eb4c8fa51b6241545" +checksum = "82c27dd34a49b1addf193c92070bcbf3beaf6e10f16a78544de6372e146a0acf" dependencies = [ "bstr", "thiserror", @@ -1591,9 +1552,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", @@ -1605,7 +1566,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -1614,6 +1575,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hex" version = "0.4.3" @@ -1631,16 +1598,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.51.1", + "windows-core 0.52.0", ] [[package]] @@ -1680,7 +1647,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "serde", ] @@ -1710,34 +1677,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06d198e9919d9822d5f7083ba8530e04de87841eaf21ead9af8f2304efd57c89" [[package]] -name = "itertools" -version = "0.11.0" +name = "is_terminal_polyfill" +version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "itertools" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1766,26 +1730,25 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "libc", - "redox_syscall", ] [[package]] name = "libz-ng-sys" -version = "1.1.14" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81157dde2fd4ad2b45ea3a4bb47b8193b52a6346b678840d91d80d3c2cd166c5" +checksum = "c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5" dependencies = [ "cmake", "libc", @@ -1793,9 +1756,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.14" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" dependencies = [ "cc", "pkg-config", @@ -1804,15 +1767,15 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1857,15 +1820,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memmap2" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ "libc", ] @@ -1878,9 +1841,9 @@ checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" [[package]] name = "memoffset" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -1893,9 +1856,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" dependencies = [ "adler", ] @@ -1924,7 +1887,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -1933,7 +1896,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "cfg-if", "cfg_aliases", "libc", @@ -1982,6 +1945,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.3.3" @@ -1995,18 +1964,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "num_threads" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ "libc", ] @@ -2048,9 +2017,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" @@ -2080,12 +2049,12 @@ dependencies = [ [[package]] name = "ordered-multimap" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f" +checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" dependencies = [ "dlv-list", - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -2117,9 +2086,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" dependencies = [ "lock_api", "parking_lot_core", @@ -2127,15 +2096,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.1", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -2168,9 +2137,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.9" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" dependencies = [ "memchr", "thiserror", @@ -2179,9 +2148,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.9" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" dependencies = [ "pest", "pest_generator", @@ -2189,22 +2158,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.9" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] name = "pest_meta" -version = "2.7.9" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" dependencies = [ "once_cell", "pest", @@ -2251,9 +2220,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2263,9 +2232,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" dependencies = [ "atomic-waker", "fastrand", @@ -2274,18 +2243,19 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polling" -version = "3.3.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", "rustix", "tracing", @@ -2306,12 +2276,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.0.4" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" +checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" dependencies = [ "anstyle", - "itertools 0.11.0", "predicates-core", ] @@ -2342,9 +2311,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" dependencies = [ "unicode-ident", ] @@ -2366,15 +2335,6 @@ version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" -[[package]] -name = "quick-xml" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" -dependencies = [ - "memchr", -] - [[package]] name = "quick-xml" version = "0.31.0" @@ -2386,9 +2346,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2453,10 +2413,19 @@ dependencies = [ ] [[package]] -name = "redox_users" -version = "0.4.4" +name = "redox_syscall" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -2477,9 +2446,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -2488,9 +2457,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rust-ini" @@ -2505,12 +2474,12 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.1", - "errno 0.3.8", + "bitflags 2.5.0", + "errno 0.3.9", "libc", "linux-raw-sys", "windows-sys 0.52.0", @@ -2518,9 +2487,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -2554,7 +2523,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -2604,18 +2573,18 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] name = "serde_derive_internals" -version = "0.29.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -2631,13 +2600,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -2663,9 +2632,9 @@ dependencies = [ [[package]] name = "sha1-asm" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba6947745e7f86be3b8af00b7355857085dbdf8901393c89514510eb61f4e21" +checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" dependencies = [ "cc", ] @@ -2702,9 +2671,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7960cbd6ba74691bb15e7ebf97f7136bd02d1115f5695a58c1f31d5645750128" +checksum = "1d75516bdaee8f640543ad1f6e292448c23ce57143f812c3736ab4b0874383df" dependencies = [ "const_format", "is_debug", @@ -2749,9 +2718,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -2773,9 +2742,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "starship" @@ -2805,7 +2774,7 @@ dependencies = [ "pest", "pest_derive", "process_control", - "quick-xml 0.31.0", + "quick-xml", "rand", "rayon", "regex", @@ -2829,7 +2798,7 @@ dependencies = [ "urlencoding", "versions", "which", - "windows 0.56.0", + "windows", "winres", "yaml-rust2", ] @@ -2876,9 +2845,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" dependencies = [ "proc-macro2", "quote", @@ -2901,12 +2870,12 @@ dependencies = [ [[package]] name = "tauri-winrt-notification" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d59cba96cdbf291d74490ac477c66885ebdc87e28faca532ec1e00f4f3bd578" +checksum = "f89f5fb70d6f62381f5d9b2ba9008196150b40b75f3068eb24faeddf1c686871" dependencies = [ - "quick-xml 0.30.0", - "windows 0.54.0", + "quick-xml", + "windows", "windows-version", ] @@ -2994,33 +2963,34 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.52" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.52" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] name = "time" -version = "0.3.31" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -3036,10 +3006,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] @@ -3119,7 +3090,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.5", + "winnow 0.6.8", ] [[package]] @@ -3141,7 +3112,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -3184,9 +3155,9 @@ dependencies = [ [[package]] name = "uluru" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794a32261a1f5eb6a4462c81b59cec87b5c27d5deea7dd1ac8fc781c41d226db" +checksum = "7c8a2469e56e6e5095c82ccd3afb98dad95f7af7929aab6d8ba8d6e0f73657da" dependencies = [ "arrayvec", ] @@ -3202,9 +3173,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-bom" @@ -3220,9 +3191,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -3296,7 +3267,7 @@ version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38a8931f8d167b6448076020e70b9de46dcf5ea1731212481a092d0071c4ac5b" dependencies = [ - "itertools 0.12.0", + "itertools", "nom 7.1.3", ] @@ -3311,9 +3282,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -3327,9 +3298,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3337,24 +3308,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3362,22 +3333,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "which" @@ -3409,11 +3380,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -3422,16 +3393,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" -dependencies = [ - "windows-core 0.54.0", - "windows-targets 0.52.5", -] - [[package]] name = "windows" version = "0.56.0" @@ -3444,20 +3405,10 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-core" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" -dependencies = [ - "windows-result", "windows-targets 0.52.5", ] @@ -3481,7 +3432,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -3492,7 +3443,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] @@ -3555,9 +3506,9 @@ dependencies = [ [[package]] name = "windows-version" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" +checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" dependencies = [ "windows-targets 0.52.5", ] @@ -3663,9 +3614,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" dependencies = [ "memchr", ] @@ -3708,23 +3659,22 @@ dependencies = [ [[package]] name = "zbus" -version = "4.1.2" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ff46f2a25abd690ed072054733e0bc3157e3d4c45f41bd183dce09c2ff8ab9" +checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f" dependencies = [ "async-broadcast", "async-executor", "async-fs", "async-io", - "async-lock 3.3.0", + "async-lock", "async-process", "async-recursion", "async-task", "async-trait", "blocking", - "derivative", "enumflags2", - "event-listener 5.2.0", + "event-listener 5.3.0", "futures-core", "futures-sink", "futures-util", @@ -3747,15 +3697,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.1.2" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0e3852c93dcdb49c9462afe67a2a468f7bd464150d866e861eaf06208633e0" +checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "regex", - "syn 1.0.109", + "syn 2.0.65", "zvariant_utils", ] @@ -3772,29 +3721,29 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.65", ] [[package]] name = "zvariant" -version = "4.0.2" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b3ca6db667bfada0f1ebfc94b2b1759ba25472ee5373d4551bb892616389a" +checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7" dependencies = [ "endi", "enumflags2", @@ -3805,24 +3754,24 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.0.2" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a4b236063316163b69039f77ce3117accb41a09567fd24c168e43491e521bc" +checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.65", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" +checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.65", ] diff --git a/Cargo.toml b/Cargo.toml index 9967f9b3..c05eb53c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,8 +49,8 @@ dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" # default feature restriction addresses https://github.com/starship/starship/issues/4251 -gix = { version = "0.62.0", default-features = false, features = ["max-performance-safe", "revision"] } -gix-features = { version = "0.38.1", optional = true } +gix = { version = "0.63.0", default-features = false, features = ["max-performance-safe", "revision"] } +gix-features = { version = "0.38.2", optional = true } indexmap = { version = "2.2.6", features = ["serde"] } log = { version = "0.4.21", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix @@ -73,7 +73,7 @@ semver = "1.0.23" serde = { version = "1.0.202", features = ["derive"] } serde_json = "1.0.117" sha1 = "0.10.6" -shadow-rs = { version = "0.27.1", default-features = false } +shadow-rs = { version = "0.28.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.3", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.28.0", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.27.1", default-features = false } +shadow-rs = { version = "0.28.0", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From 46a834d02b9f58f81a1aa61a7ff6be7b4942e65d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 17:08:56 +0000 Subject: [PATCH 302/651] build(deps): update rust crate schemars to 0.8.21 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 85a80c02..cceed811 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2502,9 +2502,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0218ceea14babe24a4a5836f86ade86c1effbc198164e619194cb5069187e29" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", "indexmap 1.9.3", @@ -2516,9 +2516,9 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed5a1ccce8ff962e31a165d41f6e2a2dd1245099dc4d594f5574a86cd90f4d3" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index c05eb53c..ded2dc2d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -96,7 +96,7 @@ home = "0.5.9" shell-words = "1.1.0" [dependencies.schemars] -version = "0.8.20" +version = "0.8.21" optional = true features = ["preserve_order", "indexmap2"] From 86c1312a05116fb404ab6ae90af37f78915f77b8 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Fri, 24 May 2024 18:05:04 +0300 Subject: [PATCH 303/651] docs: fix landing page mobile responsiveness --- docs/.vitepress/theme/index.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/.vitepress/theme/index.css b/docs/.vitepress/theme/index.css index 2f00bc0f..a261d043 100644 --- a/docs/.vitepress/theme/index.css +++ b/docs/.vitepress/theme/index.css @@ -16,6 +16,13 @@ justify-content: center; } +@media (max-width: 640px) { + .VPHero .image-container { + max-width: 320px; + width: auto; + } +} + .VPHero .image img { max-height: 130px; max-width: none; From 201f25d484aab9aff48adc7d59ab9b652e8d0629 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Sat, 25 May 2024 10:35:08 +0300 Subject: [PATCH 304/651] docs: fix image reponsiveness in safari --- docs/.vitepress/theme/index.css | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/.vitepress/theme/index.css b/docs/.vitepress/theme/index.css index a261d043..a5c16f0d 100644 --- a/docs/.vitepress/theme/index.css +++ b/docs/.vitepress/theme/index.css @@ -24,6 +24,7 @@ } .VPHero .image img { + width: 100%; max-height: 130px; max-width: none; position: static; From e542b1874e4b732376711e9d7da2bda89d9426e5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 18:04:09 +0000 Subject: [PATCH 305/651] build(deps): update rust crate serde to 1.0.203 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cceed811..a8b2a7c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2558,18 +2558,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index ded2dc2d..c33b4231 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,7 +70,7 @@ rayon = "1.10.0" regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.23" -serde = { version = "1.0.202", features = ["derive"] } +serde = { version = "1.0.203", features = ["derive"] } serde_json = "1.0.117" sha1 = "0.10.6" shadow-rs = { version = "0.28.0", default-features = false } From dd195cb5076c6c1aca3ceced03db19df7ac24273 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 01:55:56 +0000 Subject: [PATCH 306/651] build(deps): update dependency vitepress to ^1.2.2 --- docs/package-lock.json | 8 ++++---- docs/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 86990765..f09e2edb 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.2.0" + "vitepress": "^1.2.2" } }, "node_modules/@adobe/css-tools": { @@ -1724,9 +1724,9 @@ } }, "node_modules/vitepress": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.0.tgz", - "integrity": "sha512-m/4PAQVyPBvKHV7sFKwcmNmrsoSxdjnw/Eg40YyuBSaBHhrro9ubnfWk5GT0xGfE98LqjZkHCWKNJlR6G/7Ayg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.2.tgz", + "integrity": "sha512-uZ3nXR5NY4nYj3RJWCo5jev9qlNZAQo5SUXu1U0QSUx84cUm/o7hCTDVjZ4njVSVui+PsV1oAbdQOg8ygbaf4w==", "dev": true, "license": "MIT", "dependencies": { diff --git a/docs/package.json b/docs/package.json index c54aa05f..ca470087 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.2.0" + "vitepress": "^1.2.2" } } From cb5eb2ed19f3c4690a9b47864784de29a09c8e97 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 14:25:05 +0000 Subject: [PATCH 307/651] build(deps): update signpath/github-action-submit-signing-request action to v0.4 --- .github/workflows/release.yml | 2 +- .github/workflows/workflow.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 21c76714..f289ed8e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -137,7 +137,7 @@ jobs: - name: Sign | Sign [Windows] continue-on-error: true if: matrix.os == 'windows-latest' - uses: signpath/github-action-submit-signing-request@v0.3 + uses: signpath/github-action-submit-signing-request@v0.4 with: api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}' diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 79632412..d2d298eb 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -232,7 +232,7 @@ jobs: target/debug/starship-x86_64-pc-windows-msvc.msi - name: Sign | Sign [Windows] - uses: signpath/github-action-submit-signing-request@v0.3 + uses: signpath/github-action-submit-signing-request@v0.4 continue-on-error: true if: matrix.os == 'windows-latest' && matrix.rust == 'stable' && github.event_name == 'push' && github.repository == 'starship/starship' with: From 571581ce09105f0682573bcc3c7d285a6e2c1b65 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 31 May 2024 17:27:26 +0000 Subject: [PATCH 308/651] build(deps): update rust crate yaml-rust2 to 0.8.1 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8b2a7c6..cb5a89a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3648,9 +3648,9 @@ dependencies = [ [[package]] name = "yaml-rust2" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498f4d102a79ea1c9d4dd27573c0fc96ad74c023e8da38484e47883076da25fb" +checksum = "8902160c4e6f2fb145dbe9d6760a75e3c9522d8bf796ed7047c85919ac7115f8" dependencies = [ "arraydeque", "encoding_rs", diff --git a/Cargo.toml b/Cargo.toml index c33b4231..ba23828b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,7 +87,7 @@ unicode-width = "0.1.12" urlencoding = "2.1.3" versions = "6.2.0" which = "6.0.1" -yaml-rust2 = "0.8.0" +yaml-rust2 = "0.8.1" process_control = { version = "4.1.0", features = ["crossbeam-channel"] } From 116ecdfa26349129ffd958b4b2e1893fc3af9b2d Mon Sep 17 00:00:00 2001 From: Tej Chajed Date: Sat, 1 Jun 2024 09:23:21 -0400 Subject: [PATCH 309/651] docs: fix copy-paste typos in config docs (#5995) docs: Fix copy-paste typos in config docs The symbol config line for Gleam was copied from Go, for Haxe was copied from Helm, and for Typst was copied from Daml. --- docs/config/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/config/README.md b/docs/config/README.md index 035c11ca..90cd850c 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -2074,7 +2074,7 @@ By default the module will be shown if any of the following conditions are met: | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'⭐ '` | A format string representing the symbol of Go. | +| `symbol` | `'⭐ '` | A format string representing the symbol of Gleam. | | `detect_extensions` | `['gleam']` | Which extensions should trigger this module. | | `detect_files` | `['gleam.toml']` | Which filenames should trigger this module. | | `style` | `'bold #FFAFF3'` | The style for the module. | @@ -2277,7 +2277,7 @@ By default the module will be shown if any of the following conditions are met: | `detect_extensions` | `['hx', 'hxml']` | Which extensions should trigger this module. | | `detect_files` | `['project.xml', 'Project.xml', 'application.xml', 'haxelib.json', 'hxformat.json', '.haxerc']` | Which filenames should trigger this module. | | `detect_folders` | `['.haxelib', 'haxe_libraries']` | Which folders should trigger this modules. | -| `symbol` | `'⌘ '` | A format string representing the symbol of Helm. | +| `symbol` | `'⌘ '` | A format string representing the symbol of Haxe. | | `style` | `'bold fg:202'` | The style for the module. | | `disabled` | `false` | Disables the `haxe` module. | @@ -4490,7 +4490,7 @@ By default, the module will be shown if any of the following conditions are met: | ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | | `format` | `'via [$symbol($version )]($style)'` | The format for the module. | | `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'t '` | A format string representing the symbol of Daml | +| `symbol` | `'t '` | A format string representing the symbol of Typst | | `style` | `'bold #0093A7'` | The style for the module. | | `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | | `detect_files` | `['template.typ']` | Which filenames should trigger this module. | From 5c2a4affbd37ba6295731ffeddd9cb4ef946d868 Mon Sep 17 00:00:00 2001 From: JM Fergeau <6705075+jmfergeau@users.noreply.github.com> Date: Sun, 2 Jun 2024 15:23:23 +0200 Subject: [PATCH 310/651] docs(preset): add symbol for Endeavour OS to gruvbox-rainbow preset (#5977) * Support for Endeavour OS Title. Since there's apparently no icon for this one in nerd fonts, I used the Arch logo since it's Arch-based. * Changed icon to shuttle_space Indeed it fits pretty much Endeavour's space theme. Nice suggestion! --- docs/public/presets/toml/gruvbox-rainbow.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/public/presets/toml/gruvbox-rainbow.toml b/docs/public/presets/toml/gruvbox-rainbow.toml index aee6704e..516aed2e 100644 --- a/docs/public/presets/toml/gruvbox-rainbow.toml +++ b/docs/public/presets/toml/gruvbox-rainbow.toml @@ -61,6 +61,7 @@ Amazon = "" Android = "" Arch = "󰣇" Artix = "󰣇" +EndeavourOS = "" CentOS = "" Debian = "󰣚" Redhat = "󱄛" From 478d5cccb6f7f4622dd681756cf004ba92c98607 Mon Sep 17 00:00:00 2001 From: DerRockWolf <50499906+DerRockWolf@users.noreply.github.com> Date: Sun, 2 Jun 2024 13:24:12 +0000 Subject: [PATCH 311/651] fix(direnv): replace nonexistent "orange" color with "bright-yellow" (#5969) * Fix direnv config: change style from nonexistent "bold orange" to "bold bright-yellow" * generate config-schema.json * fix tests --- .github/config-schema.json | 4 +- src/configs/direnv.rs | 2 +- src/modules/direnv.rs | 106 ++++++++++++++++++++----------------- 3 files changed, 60 insertions(+), 52 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 3e9c2141..faa1fa84 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -367,7 +367,7 @@ "format": "[$symbol$loaded/$allowed]($style) ", "loaded_msg": "loaded", "not_allowed_msg": "not allowed", - "style": "bold orange", + "style": "bold bright-yellow", "symbol": "direnv ", "unloaded_msg": "not loaded" }, @@ -2821,7 +2821,7 @@ "type": "string" }, "style": { - "default": "bold orange", + "default": "bold bright-yellow", "type": "string" }, "disabled": { diff --git a/src/configs/direnv.rs b/src/configs/direnv.rs index 5ca1e185..a4ca2b80 100755 --- a/src/configs/direnv.rs +++ b/src/configs/direnv.rs @@ -27,7 +27,7 @@ impl<'a> Default for DirenvConfig<'a> { Self { format: "[$symbol$loaded/$allowed]($style) ", symbol: "direnv ", - style: "bold orange", + style: "bold bright-yellow", disabled: true, detect_extensions: vec![], detect_files: vec![".envrc"], diff --git a/src/modules/direnv.rs b/src/modules/direnv.rs index 823c0adf..859a9e4d 100644 --- a/src/modules/direnv.rs +++ b/src/modules/direnv.rs @@ -184,6 +184,7 @@ mod tests { use crate::test::ModuleRenderer; use crate::utils::CommandOutput; + use nu_ansi_term::Color; use std::io; use std::path::Path; #[test] @@ -227,7 +228,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -239,13 +240,14 @@ mod tests { stdout: status_cmd_output_with_rc(dir.path(), false, "0", true), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv not loaded/allowed ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv not loaded/allowed") + )); + assert_eq!(expected, actual); dir.close() } #[test] @@ -255,7 +257,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -267,13 +269,14 @@ mod tests { stdout: status_cmd_output_with_rc_json(dir.path(), 1, 0), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv not loaded/allowed ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv not loaded/allowed") + )); + assert_eq!(expected, actual); dir.close() } #[test] @@ -283,7 +286,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -295,13 +298,14 @@ mod tests { stdout: status_cmd_output_with_rc(dir.path(), true, "0", true), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv loaded/allowed ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv loaded/allowed") + )); + assert_eq!(expected, actual); dir.close() } #[test] @@ -311,7 +315,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -323,13 +327,14 @@ mod tests { stdout: status_cmd_output_with_rc_json(dir.path(), 0, 0), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv loaded/allowed ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv loaded/allowed") + )); + assert_eq!(expected, actual); dir.close() } #[test] @@ -339,7 +344,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -351,13 +356,14 @@ mod tests { stdout: status_cmd_output_with_rc(dir.path(), true, "2", true), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv loaded/denied ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv loaded/denied") + )); + assert_eq!(expected, actual); dir.close() } #[test] @@ -367,7 +373,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -379,13 +385,14 @@ mod tests { stdout: status_cmd_output_with_rc_json(dir.path(), 0, 1), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv loaded/not allowed ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv loaded/not allowed") + )); + assert_eq!(expected, actual); dir.close() } #[test] @@ -395,7 +402,7 @@ mod tests { std::fs::File::create(rc_path)?.sync_all()?; - let renderer = ModuleRenderer::new("direnv") + let actual = ModuleRenderer::new("direnv") .config(toml::toml! { [direnv] disabled = false @@ -407,13 +414,14 @@ mod tests { stdout: status_cmd_output_with_rc_json(dir.path(), 0, 2), stderr: String::default(), }), - ); - - assert_eq!( - Some("direnv loaded/denied ".to_string()), - renderer.collect() - ); + ) + .collect(); + let expected = Some(format!( + "{} ", + Color::LightYellow.bold().paint("direnv loaded/denied") + )); + assert_eq!(expected, actual); dir.close() } fn status_cmd_output_without_rc() -> String { From 52f7661451bbf55388310dbaa679985d65b907b9 Mon Sep 17 00:00:00 2001 From: Jacob Michels <39355388+jacobmichels@users.noreply.github.com> Date: Sun, 2 Jun 2024 09:24:50 -0400 Subject: [PATCH 312/651] build(deps): Fix renovate lockfile maintenance (#5955) * fix lockfile maintenance misconfig * style Co-authored-by: David Knaack --------- Co-authored-by: David Knaack --- .github/renovate.json5 | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 2aee6484..490e0f30 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -16,6 +16,12 @@ "semanticCommitType": "build", "rangeStrategy": "bump", "rebaseWhen": "conflicted", + "lockFileMaintenance": { + "enabled": true, + "extends": ["schedule:weekly"], + "groupName": "lockfile maintenance", + "automerge": true + }, "packageRules": [ // group updates to related packages { @@ -52,14 +58,6 @@ "groupName": "npm", "matchDatasources": ["npm"], "extends": ["schedule:weekly"] - }, - // Update (rust) lockfiles weekly - { - "matchDatasources": ["crate"], - "lockFileMaintenance": { - "enabled": true, - "extends": ["schedule:weekly"] - } } ], // custom regex update managers From 428315b656fd9b6bf70c62a2f395f81dda840b9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 02:04:58 +0000 Subject: [PATCH 313/651] build(deps): update dprint plugins --- .dprint.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.dprint.json b/.dprint.json index 2f2a3299..3be781e5 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,9 +25,9 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.90.5/plugin.wasm", - "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.2/plugin.wasm", - "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.17.0/plugin.wasm", - "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.1/plugin.wasm" + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.91.0/plugin.wasm", + "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.3/plugin.wasm", + "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.17.1/plugin.wasm", + "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.2/plugin.wasm" ] } From 4c30c03611da808a3ed7e182523ebffa597c1e95 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 02:06:21 +0000 Subject: [PATCH 314/651] build(deps): lock file maintenance --- Cargo.lock | 162 ++++----- docs/package-lock.json | 747 +++++++++++++++++++---------------------- 2 files changed, 417 insertions(+), 492 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cb5a89a0..7c2eb316 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -125,12 +125,12 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-broadcast" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" dependencies = [ - "event-listener 5.3.0", - "event-listener-strategy 0.5.2", + "event-listener", + "event-listener-strategy", "futures-core", "pin-project-lite", ] @@ -142,16 +142,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener-strategy 0.5.2", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" dependencies = [ "async-task", "concurrent-queue", @@ -173,9 +173,9 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" dependencies = [ "async-lock", "cfg-if", @@ -192,20 +192,20 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", + "event-listener", + "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-process" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53fc6301894e04a92cb2584fedde80cb25ba8e02d9dc39d4a87d036e22f397d" +checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a" dependencies = [ "async-channel", "async-io", @@ -214,7 +214,7 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener 5.3.0", + "event-listener", "futures-lite", "rustix", "tracing", @@ -229,14 +229,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] name = "async-signal" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +checksum = "329972aa325176e89114919f2a80fdae4f4c040f66a370b1a1159c6c0f94e7aa" dependencies = [ "async-io", "async-lock", @@ -264,7 +264,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -323,12 +323,11 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ "async-channel", - "async-lock", "async-task", "futures-io", "futures-lite", @@ -432,7 +431,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -787,7 +786,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -829,43 +828,22 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.3" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", "pin-project-lite", ] -[[package]] -name = "event-listener" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - [[package]] name = "event-listener-strategy" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.3.0", + "event-listener", "pin-project-lite", ] @@ -1073,7 +1051,7 @@ dependencies = [ "gix-utils", "itoa", "thiserror", - "winnow 0.6.8", + "winnow 0.6.9", ] [[package]] @@ -1126,7 +1104,7 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow 0.6.8", + "winnow 0.6.9", ] [[package]] @@ -1207,9 +1185,9 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f78f7d6dcda7a5809efd73a33b145e3dce7421c460df21f32126f9732736b0c" +checksum = "c3338ff92a2164f5209f185ec0cd316f571a72676bb01d27e22f2867ba69f77a" dependencies = [ "fastrand", "gix-features", @@ -1218,9 +1196,9 @@ dependencies = [ [[package]] name = "gix-glob" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "682bdc43cb3c00dbedfcc366de2a849b582efd8d886215dbad2ea662ec156bb5" +checksum = "c2a29ad0990cf02c48a7aac76ed0dbddeb5a0d070034b83675cc3bbf937eace4" dependencies = [ "bitflags 2.5.0", "bstr", @@ -1296,7 +1274,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -1315,7 +1293,7 @@ dependencies = [ "itoa", "smallvec", "thiserror", - "winnow 0.6.8", + "winnow 0.6.9", ] [[package]] @@ -1385,9 +1363,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.44.0" +version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b36752b448647acd59c9668fdd830b16d07db1e6d9c3b3af105c1605a6e23d9" +checksum = "3394a2997e5bc6b22ebc1e1a87b41eeefbcfcff3dbfa7c4bd73cb0ac8f1f3e2e" dependencies = [ "gix-actor", "gix-date", @@ -1402,7 +1380,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror", - "winnow 0.6.8", + "winnow 0.6.9", ] [[package]] @@ -1756,9 +1734,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.16" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "pkg-config", @@ -1887,7 +1865,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2086,9 +2064,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -2166,7 +2144,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2232,9 +2210,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" dependencies = [ "atomic-waker", "fastrand", @@ -2249,9 +2227,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polling" -version = "3.7.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +checksum = "5e6a007746f34ed64099e88783b0ae369eaa3da6392868ba262e2af9b8fbaea1" dependencies = [ "cfg-if", "concurrent-queue", @@ -2311,9 +2289,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] @@ -2523,7 +2501,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2573,7 +2551,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2584,7 +2562,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2606,7 +2584,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -2845,9 +2823,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.65" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -2978,7 +2956,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -3090,7 +3068,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.8", + "winnow 0.6.9", ] [[package]] @@ -3112,7 +3090,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -3317,7 +3295,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", "wasm-bindgen-shared", ] @@ -3339,7 +3317,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3432,7 +3410,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -3443,7 +3421,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -3614,9 +3592,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6" dependencies = [ "memchr", ] @@ -3674,7 +3652,7 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.3.0", + "event-listener", "futures-core", "futures-sink", "futures-util", @@ -3704,7 +3682,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", "zvariant_utils", ] @@ -3736,7 +3714,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] [[package]] @@ -3761,7 +3739,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", "zvariant_utils", ] @@ -3773,5 +3751,5 @@ checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn 2.0.66", ] diff --git a/docs/package-lock.json b/docs/package-lock.json index f09e2edb..ce138d9d 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,19 +8,12 @@ "vitepress": "^1.2.2" } }, - "node_modules/@adobe/css-tools": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", - "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/@algolia/autocomplete-core": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", "dev": true, + "license": "MIT", "dependencies": { "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", "@algolia/autocomplete-shared": "1.9.3" @@ -31,6 +24,7 @@ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", "dev": true, + "license": "MIT", "dependencies": { "@algolia/autocomplete-shared": "1.9.3" }, @@ -43,6 +37,7 @@ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", "dev": true, + "license": "MIT", "dependencies": { "@algolia/autocomplete-shared": "1.9.3" }, @@ -56,144 +51,179 @@ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", "dev": true, + "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", - "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz", + "integrity": "sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/cache-common": "4.22.1" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/cache-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", - "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==", - "dev": true + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz", + "integrity": "sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==", + "dev": true, + "license": "MIT" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", - "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz", + "integrity": "sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/cache-common": "4.22.1" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/client-account": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", - "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz", + "integrity": "sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-analytics": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", - "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz", + "integrity": "sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", - "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz", + "integrity": "sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-personalization": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", - "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz", + "integrity": "sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-search": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", - "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz", + "integrity": "sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/logger-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", - "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==", - "dev": true + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz", + "integrity": "sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==", + "dev": true, + "license": "MIT" }, "node_modules/@algolia/logger-console": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", - "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz", + "integrity": "sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/logger-common": "4.22.1" + "@algolia/logger-common": "4.23.3" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz", + "integrity": "sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", - "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz", + "integrity": "sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/requester-common": "4.22.1" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/requester-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", - "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==", - "dev": true + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz", + "integrity": "sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==", + "dev": true, + "license": "MIT" }, "node_modules/@algolia/requester-node-http": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", - "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz", + "integrity": "sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/requester-common": "4.22.1" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/transporter": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", - "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz", + "integrity": "sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/cache-common": "4.22.1", - "@algolia/logger-common": "4.22.1", - "@algolia/requester-common": "4.22.1" + "@algolia/cache-common": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/requester-common": "4.23.3" } }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", + "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", "dev": true, "license": "MIT", "bin": { @@ -207,13 +237,15 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@docsearch/js": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.0.tgz", "integrity": "sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==", "dev": true, + "license": "MIT", "dependencies": { "@docsearch/react": "3.6.0", "preact": "^10.0.0" @@ -224,6 +256,7 @@ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", "dev": true, + "license": "MIT", "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", @@ -259,6 +292,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -275,6 +309,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -291,6 +326,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -307,6 +343,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -323,6 +360,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -339,6 +377,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -355,6 +394,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -371,6 +411,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -387,6 +428,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -403,6 +445,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -419,6 +462,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -435,6 +479,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -451,6 +496,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -467,6 +513,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -483,6 +530,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -499,6 +547,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -515,6 +564,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -531,6 +581,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -547,6 +598,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -563,6 +615,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -579,6 +632,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -595,6 +649,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -611,6 +666,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -627,196 +683,252 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@shikijs/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.0.tgz", - "integrity": "sha512-NIEAi5U5R7BLkbW1pG/ZKu3eb1lzc3/+jD0lFsuxMT7zjaf9bbNwdNyMr7zh/Zl8EXQtQ+MYBAt5G+JLu+5DlA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.2.tgz", + "integrity": "sha512-guW5JeDzZ7uwOjTfCOFZ2VtVXk5tmkMzBYbKGfXsmAH1qYOej49L5jQDcGmwd6/OgvpmWhzO2GNJkQIFnbwLPQ==", "dev": true, "license": "MIT" }, "node_modules/@shikijs/transformers": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.0.tgz", - "integrity": "sha512-qGfHe1ECiqfE2STPWvfogIj/9Q0SK+MCRJdoITkW7AmFuB7DmbFnBT2US84+zklJOB51MzNO8RUXZiauWssJlQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.2.tgz", + "integrity": "sha512-ndqTWyHnxmsLkowhKWTam26opw8hg5a34y6FAUG/Xf6E49n3MM//nenKxXiWpPYkNPl1KZnYXB1k+Ia46wjOZg==", "dev": true, "license": "MIT", "dependencies": { - "shiki": "1.6.0" + "shiki": "1.6.2" } }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/linkify-it": { "version": "5.0.0", @@ -847,13 +959,15 @@ "version": "0.0.20", "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", - "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", + "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", "dev": true, + "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" }, @@ -1008,14 +1122,15 @@ "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.9.0.tgz", - "integrity": "sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz", + "integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==", "dev": true, + "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.9.0", - "@vueuse/shared": "10.9.0", + "@vueuse/metadata": "10.10.0", + "@vueuse/shared": "10.10.0", "vue-demi": ">=0.14.7" }, "funding": { @@ -1023,11 +1138,12 @@ } }, "node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-switch": "bin/vue-demi-switch.js" @@ -1049,13 +1165,14 @@ } }, "node_modules/@vueuse/integrations": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.9.0.tgz", - "integrity": "sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.10.0.tgz", + "integrity": "sha512-vHGeK7X6mkdkpcm1eE9t3Cpm21pNVfZRwrjwwbrEs9XftnSgszF4831G2rei8Dt9cIYJIfFV+iyx/29muimJPQ==", "dev": true, + "license": "MIT", "dependencies": { - "@vueuse/core": "10.9.0", - "@vueuse/shared": "10.9.0", + "@vueuse/core": "10.10.0", + "@vueuse/shared": "10.10.0", "vue-demi": ">=0.14.7" }, "funding": { @@ -1115,11 +1232,12 @@ } }, "node_modules/@vueuse/integrations/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-switch": "bin/vue-demi-switch.js" @@ -1141,19 +1259,21 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.9.0.tgz", - "integrity": "sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz", + "integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.9.0.tgz", - "integrity": "sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz", + "integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==", "dev": true, + "license": "MIT", "dependencies": { "vue-demi": ">=0.14.7" }, @@ -1162,11 +1282,12 @@ } }, "node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", "vue-demi-switch": "bin/vue-demi-switch.js" @@ -1188,55 +1309,29 @@ } }, "node_modules/algoliasearch": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", - "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz", + "integrity": "sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==", "dev": true, + "license": "MIT", "dependencies": { - "@algolia/cache-browser-local-storage": "4.22.1", - "@algolia/cache-common": "4.22.1", - "@algolia/cache-in-memory": "4.22.1", - "@algolia/client-account": "4.22.1", - "@algolia/client-analytics": "4.22.1", - "@algolia/client-common": "4.22.1", - "@algolia/client-personalization": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/logger-common": "4.22.1", - "@algolia/logger-console": "4.22.1", - "@algolia/requester-browser-xhr": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/requester-node-http": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-account": "4.23.3", + "@algolia/client-analytics": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-personalization": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/recommend": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -1244,25 +1339,6 @@ "dev": true, "license": "MIT" }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -1282,6 +1358,7 @@ "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1326,24 +1403,18 @@ "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz", "integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==", "dev": true, + "license": "MIT", "dependencies": { "tabbable": "^6.2.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1352,28 +1423,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/hookable": { "version": "5.5.3", "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", @@ -1381,26 +1430,6 @@ "dev": true, "license": "MIT" }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", @@ -1415,27 +1444,15 @@ "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "license": "MIT" }, "node_modules/minisearch": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz", "integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mitt": { "version": "3.0.1", @@ -1444,14 +1461,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -1463,6 +1472,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1470,28 +1480,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/perfect-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", @@ -1500,10 +1488,11 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, + "license": "ISC" }, "node_modules/postcss": { "version": "8.4.38", @@ -1524,6 +1513,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -1534,10 +1524,11 @@ } }, "node_modules/preact": { - "version": "10.19.5", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.5.tgz", - "integrity": "sha512-OPELkDmSVbKjbFqF9tgvOowiiQ9TmsJljIzXRyNE8nGiis94pwv1siF78rQkAP1Q1738Ce6pellRg/Ns/CtHqQ==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.0.tgz", + "integrity": "sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -1551,10 +1542,11 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -1566,56 +1558,41 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", "fsevents": "~2.3.2" } }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/search-insights": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", - "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz", + "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/shiki": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.0.tgz", - "integrity": "sha512-P31ROeXcVgW/k3Z+vUUErcxoTah7ZRaimctOpzGuqAntqnnSmx1HOsvnbAB8Z2qfXPRhw61yptAzCsuKOhTHwQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.2.tgz", + "integrity": "sha512-X3hSm5GzzBd/BmPmGfkueOUADLyBoZo1ojYQXhd+NU2VJn458yt4duaS0rVzC+WtqftSV7mTVvDw+OB9AHi3Eg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.6.0" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 8" + "@shikijs/core": "1.6.2" } }, "node_modules/source-map-js": { @@ -1623,6 +1600,7 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -1637,40 +1615,17 @@ "node": ">=0.10.0" } }, - "node_modules/stylus": { - "version": "0.62.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.62.0.tgz", - "integrity": "sha512-v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@adobe/css-tools": "~4.3.1", - "debug": "^4.3.2", - "glob": "^7.1.6", - "sax": "~1.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://opencollective.com/stylus" - } - }, "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vite": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", - "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", "dev": true, "license": "MIT", "dependencies": { @@ -1784,14 +1739,6 @@ "optional": true } } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "optional": true, - "peer": true } } } From bbaa571dffd7336dada3040a22be7ab4ba630b6d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:58:17 +0000 Subject: [PATCH 315/651] build(deps): update crate-ci/typos action to v1.22.0 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 6e9b0f16..6ea37828 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.21.0 + - uses: crate-ci/typos@v1.22.0 From d3b830754023f2e34c99af37fcf20b9b6973ce3b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 19:19:57 +0000 Subject: [PATCH 316/651] build(deps): update toml crates --- Cargo.lock | 14 +++++++------- Cargo.toml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7c2eb316..39c98ef8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2769,8 +2769,8 @@ dependencies = [ "systemstat", "tempfile", "terminal_size", - "toml 0.8.13", - "toml_edit 0.22.13", + "toml 0.8.14", + "toml_edit 0.22.14", "unicode-segmentation", "unicode-width", "urlencoding", @@ -3027,15 +3027,15 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.13" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" dependencies = [ "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.13", + "toml_edit 0.22.14", ] [[package]] @@ -3060,9 +3060,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.13" +version = "0.22.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" dependencies = [ "indexmap 2.2.6", "serde", diff --git a/Cargo.toml b/Cargo.toml index ba23828b..d5a9b626 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,8 +80,8 @@ starship-battery = { version = "0.8.3", optional = true } strsim = "0.11.1" systemstat = "=0.2.3" terminal_size = "0.3.0" -toml = { version = "0.8.13", features = ["preserve_order"] } -toml_edit = "0.22.13" +toml = { version = "0.8.14", features = ["preserve_order"] } +toml_edit = "0.22.14" unicode-segmentation = "1.11.0" unicode-width = "0.1.12" urlencoding = "2.1.3" From 6b6db69fb3223ed3908875659c43443a42184ed9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:26:15 +0000 Subject: [PATCH 317/651] build(deps): update rust crate unicode-width to 0.1.13 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 39c98ef8..136cfdf4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3184,9 +3184,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" diff --git a/Cargo.toml b/Cargo.toml index d5a9b626..910c58f4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,7 +83,7 @@ terminal_size = "0.3.0" toml = { version = "0.8.14", features = ["preserve_order"] } toml_edit = "0.22.14" unicode-segmentation = "1.11.0" -unicode-width = "0.1.12" +unicode-width = "0.1.13" urlencoding = "2.1.3" versions = "6.2.0" which = "6.0.1" From e9faf176c662df61a0438c75620cdecade82675a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 23:15:56 +0000 Subject: [PATCH 318/651] build(deps): update rust crate open to 5.1.4 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 136cfdf4..5c478700 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2001,9 +2001,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" -version = "5.1.3" +version = "5.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb49fbd5616580e9974662cb96a3463da4476e649a7e4b258df0de065db0657" +checksum = "b5ca541f22b1c46d4bb9801014f234758ab4297e7870b904b6a8415b980a7388" dependencies = [ "is-wsl", "libc", diff --git a/Cargo.toml b/Cargo.toml index 910c58f4..413eace6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,7 @@ log = { version = "0.4.21", features = ["std"] } notify-rust = { version = "4.11.0", optional = true } nu-ansi-term = "0.50.0" once_cell = "1.19.0" -open = "5.1.3" +open = "5.1.4" # update os module config and tests when upgrading os_info os_info = "3.8.2" path-slash = "0.2.1" From 54896596987f9e33226b62870bd4115233f86b04 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:59:37 +0000 Subject: [PATCH 319/651] build(deps): update crate-ci/typos action to v1.22.1 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 6ea37828..2b95e196 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.22.0 + - uses: crate-ci/typos@v1.22.1 From c2a9cdfbf74c44ce265a9a68f9035591046ac746 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 22:33:57 +0000 Subject: [PATCH 320/651] build(deps): update clap crates --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5c478700..d917fcd6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -391,9 +391,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7" dependencies = [ "clap_builder", "clap_derive", @@ -401,9 +401,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df" dependencies = [ "anstream", "anstyle", @@ -415,18 +415,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.2" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e" +checksum = "84733fe9ab28bdce67389f0300221a5c4cd29f6def6417636d7b7ca5e5f3e3b2" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" dependencies = [ "heck", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 413eace6..f7ce59ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,8 +43,8 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.4", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.5.2" +clap = { version = "4.5.6", features = ["derive", "cargo", "unicode"] } +clap_complete = "4.5.4" dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" From 17b09bed3d0e10e93f493a706e404ae79626252a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:39:46 +0000 Subject: [PATCH 321/651] build(deps): update crate-ci/typos action to v1.22.3 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 2b95e196..35599c32 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.22.1 + - uses: crate-ci/typos@v1.22.3 From 64c117505fdae5b6738f391aadb2522cfcff6d3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 22:24:46 +0000 Subject: [PATCH 322/651] build(deps): update rust crate clap_complete to 4.5.5 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d917fcd6..fbbbd6ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.4" +version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84733fe9ab28bdce67389f0300221a5c4cd29f6def6417636d7b7ca5e5f3e3b2" +checksum = "d2020fa13af48afc65a9a87335bda648309ab3d154cd03c7ff95b378c7ed39c4" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index f7ce59ec..06369ad0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.6", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.5.4" +clap_complete = "4.5.5" dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" From d8a3ac72a3cd261c171d750fc0e6d458f6c538df Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Jun 2024 10:30:46 +0000 Subject: [PATCH 323/651] build(deps): update reviewdog/action-suggester action to v1.13.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index d2d298eb..c541129c 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.12.0 + uses: reviewdog/action-suggester@v1.13.0 with: tool_name: starship config-schema filter_mode: nofilter From d9f8e3b1d938761ab2f414f8b203d161d5430782 Mon Sep 17 00:00:00 2001 From: Jonathan Carlson Date: Sun, 9 Jun 2024 00:20:47 -0700 Subject: [PATCH 324/651] docs: fix Typst copy paste typo (#6021) docs: fix typst copy paste typo for disabled option in config docs --- docs/config/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config/README.md b/docs/config/README.md index 90cd850c..cfaf04d6 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -4495,7 +4495,7 @@ By default, the module will be shown if any of the following conditions are met: | `detect_extensions` | `['.typ']` | Which extensions should trigger this module. | | `detect_files` | `['template.typ']` | Which filenames should trigger this module. | | `detect_folders` | `[]` | Which folders should trigger this module. | -| `disabled` | `false` | Disables the `daml` module. | +| `disabled` | `false` | Disables the `typst` module. | ### Variables From 8c75822d4380e020ebd289a4ef06cd4d31ee5196 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 9 Jun 2024 09:55:13 +0200 Subject: [PATCH 325/651] fix(k8s): don't trigger if scan config is set but env vars are not (#5979) --- src/modules/kubernetes.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/modules/kubernetes.rs b/src/modules/kubernetes.rs index 09a4cef4..c0838a3e 100644 --- a/src/modules/kubernetes.rs +++ b/src/modules/kubernetes.rs @@ -107,7 +107,8 @@ pub fn module<'a>(context: &'a Context) -> Option> { return None; }; - let have_env_vars = context.detect_env_vars(&config.detect_env_vars); + let have_env_config = !config.detect_env_vars.is_empty(); + let have_env_vars = have_env_config.then(|| context.detect_env_vars(&config.detect_env_vars)); // If we have some config for doing the directory scan then we use it but if we don't then we // assume we should treat it like the module is enabled to preserve backward compatibility. @@ -129,7 +130,7 @@ pub fn module<'a>(context: &'a Context) -> Option> { }) }); - if !is_kube_project.unwrap_or(true) && !have_env_vars { + if !is_kube_project.or(have_env_vars).unwrap_or(true) { return None; } @@ -445,6 +446,16 @@ users: [] }) .collect(); + let actual_none = ModuleRenderer::new("kubernetes") + .path(empty_dir.path()) + .env("KUBECONFIG", filename.to_string_lossy().as_ref()) + .config(toml::toml! { + [kubernetes] + disabled = false + detect_files = ["k8s.ext"] + }) + .collect(); + let expected = Some(format!( "{} in ", Color::Cyan.bold().paint("☸ test_context") @@ -454,6 +465,7 @@ users: [] assert_eq!(expected, actual_ext); assert_eq!(expected, actual_dir); assert_eq!(expected, actual_env_var); + assert_eq!(None, actual_none); dir.close() } From 3ee8ef852584f88be79069917a6b8ed30b23cedc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 9 Jun 2024 12:29:08 +0000 Subject: [PATCH 326/651] build(deps): update rust crate regex to 1.10.5 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fbbbd6ab..3b3077e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2412,9 +2412,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 06369ad0..0f7a9766 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ pest_derive = "2.7.9" quick-xml = "0.31.0" rand = "0.8.5" rayon = "1.10.0" -regex = { version = "1.10.4", default-features = false, features = ["perf", "std", "unicode-perl"] } +regex = { version = "1.10.5", default-features = false, features = ["perf", "std", "unicode-perl"] } rust-ini = "0.21.0" semver = "1.0.23" serde = { version = "1.0.203", features = ["derive"] } From a30e6c4490e1f6155fe5caa0c5b41b5e91c42f33 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:57:44 +0000 Subject: [PATCH 327/651] build(deps): update dependency dprint/dprint-plugin-typescript to v0.91.1 --- .dprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dprint.json b/.dprint.json index 3be781e5..ded68b4f 100644 --- a/.dprint.json +++ b/.dprint.json @@ -25,7 +25,7 @@ "target/" ], "plugins": [ - "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.91.0/plugin.wasm", + "https://github.com/dprint/dprint-plugin-typescript/releases/download/0.91.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-json/releases/download/0.19.3/plugin.wasm", "https://github.com/dprint/dprint-plugin-markdown/releases/download/0.17.1/plugin.wasm", "https://github.com/dprint/dprint-plugin-toml/releases/download/0.6.2/plugin.wasm" From 51d7d91aaf46f87a3c4eda512fbdbea6ad363e47 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 00:58:00 +0000 Subject: [PATCH 328/651] build(deps): update dependency vitepress to ^1.2.3 --- docs/package-lock.json | 24 ++++++++++++------------ docs/package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index ce138d9d..2987c7d7 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "devDependencies": { - "vitepress": "^1.2.2" + "vitepress": "^1.2.3" } }, "node_modules/@algolia/autocomplete-core": { @@ -1679,27 +1679,27 @@ } }, "node_modules/vitepress": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.2.tgz", - "integrity": "sha512-uZ3nXR5NY4nYj3RJWCo5jev9qlNZAQo5SUXu1U0QSUx84cUm/o7hCTDVjZ4njVSVui+PsV1oAbdQOg8ygbaf4w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.2.3.tgz", + "integrity": "sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg==", "dev": true, "license": "MIT", "dependencies": { "@docsearch/css": "^3.6.0", "@docsearch/js": "^3.6.0", - "@shikijs/core": "^1.5.2", - "@shikijs/transformers": "^1.5.2", + "@shikijs/core": "^1.6.2", + "@shikijs/transformers": "^1.6.2", "@types/markdown-it": "^14.1.1", - "@vitejs/plugin-vue": "^5.0.4", - "@vue/devtools-api": "^7.2.0", + "@vitejs/plugin-vue": "^5.0.5", + "@vue/devtools-api": "^7.2.1", "@vue/shared": "^3.4.27", - "@vueuse/core": "^10.9.0", - "@vueuse/integrations": "^10.9.0", + "@vueuse/core": "^10.10.0", + "@vueuse/integrations": "^10.10.0", "focus-trap": "^7.5.4", "mark.js": "8.11.1", "minisearch": "^6.3.0", - "shiki": "^1.5.2", - "vite": "^5.2.11", + "shiki": "^1.6.2", + "vite": "^5.2.12", "vue": "^3.4.27" }, "bin": { diff --git a/docs/package.json b/docs/package.json index ca470087..ee3eb7af 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,6 +5,6 @@ "preview": "vitepress preview" }, "devDependencies": { - "vitepress": "^1.2.2" + "vitepress": "^1.2.3" } } From 1248d085b706cfd2248269f1a646fcd86ccf05d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:30:31 +0000 Subject: [PATCH 329/651] build(deps): update rust crate clap to 4.5.7 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b3077e2..0f1cb5a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -391,9 +391,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" dependencies = [ "clap_builder", "clap_derive", @@ -401,9 +401,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" dependencies = [ "anstream", "anstyle", diff --git a/Cargo.toml b/Cargo.toml index 0f7a9766..9c96a2d4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.6", features = ["derive", "cargo", "unicode"] } +clap = { version = "4.5.7", features = ["derive", "cargo", "unicode"] } clap_complete = "4.5.5" dirs = "5.0.1" dunce = "1.0.4" From 46b54ebc7d012908dc5ea7001d4d118cd14019bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 01:21:52 +0000 Subject: [PATCH 330/651] build(deps): update crate-ci/typos action to v1.22.4 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index 35599c32..d99cce28 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.22.3 + - uses: crate-ci/typos@v1.22.4 From 522aa31f0844a70771c15582b28254ba1db89fab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 16:57:51 +0000 Subject: [PATCH 331/651] build(deps): update crate-ci/typos action to v1.22.7 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index d99cce28..bcadf688 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.22.4 + - uses: crate-ci/typos@v1.22.7 From ed203fff71067fae959df4804849cb76d215b4dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 15 Jun 2024 10:51:11 +0000 Subject: [PATCH 332/651] build(deps): update rust crate versions to 6.3.0 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f1cb5a7..3adc8828 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1662,9 +1662,9 @@ checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -3241,9 +3241,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "versions" -version = "6.2.0" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a8931f8d167b6448076020e70b9de46dcf5ea1731212481a092d0071c4ac5b" +checksum = "5fc28d1172a20e32754969ea1a873c2c6e68e36c449c6056aa3e2ee5fe69a794" dependencies = [ "itertools", "nom 7.1.3", diff --git a/Cargo.toml b/Cargo.toml index 9c96a2d4..c936d90b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -85,7 +85,7 @@ toml_edit = "0.22.14" unicode-segmentation = "1.11.0" unicode-width = "0.1.13" urlencoding = "2.1.3" -versions = "6.2.0" +versions = "6.3.0" which = "6.0.1" yaml-rust2 = "0.8.1" From 37fba4cfb706533988404255e6226f37cdab13f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 16:59:07 +0000 Subject: [PATCH 333/651] build(deps): update reviewdog/action-suggester action to v1.14.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index c541129c..280ec8e8 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.13.0 + uses: reviewdog/action-suggester@v1.14.0 with: tool_name: starship config-schema filter_mode: nofilter From 5b92e7bd264042be0ee64801e54c3cb0e5aedec9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 22:47:44 +0000 Subject: [PATCH 334/651] build(deps): update rust crate clap_complete to 4.5.6 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3adc8828..5d9887ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.5" +version = "4.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2020fa13af48afc65a9a87335bda648309ab3d154cd03c7ff95b378c7ed39c4" +checksum = "fbca90c87c2a04da41e95d1856e8bcd22f159bdbfa147314d2ce5218057b0e58" dependencies = [ "clap", ] diff --git a/Cargo.toml b/Cargo.toml index c936d90b..0d8c699f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] } clap = { version = "4.5.7", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.5.5" +clap_complete = "4.5.6" dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" From eade2327e5ccccbc0396e7dcda0dab807a24e0bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 22:18:27 +0000 Subject: [PATCH 335/651] build(deps): update crate-ci/typos action to v1.22.8 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index bcadf688..dc3a691c 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.22.7 + - uses: crate-ci/typos@v1.22.8 From aa05a1e5abfebfcae64f4a2ce8d8551dabb835b5 Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 22 Jun 2024 09:52:46 +0200 Subject: [PATCH 336/651] chore: fix rust 1.79 lint warnings (#6034) * chore: fix rust 1.79 lint warnings * chore: update config-schema --- .github/config-schema.json | 9 +++++++++ src/context.rs | 6 +++--- src/module.rs | 2 +- src/modules/username.rs | 1 - src/print.rs | 2 +- src/serde_utils.rs | 4 ++-- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index faa1fa84..4ec65c32 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -2095,12 +2095,14 @@ "type": "string" }, "charging_symbol": { + "default": null, "type": [ "string", "null" ] }, "discharging_symbol": { + "default": null, "type": [ "string", "null" @@ -2771,12 +2773,14 @@ "type": "string" }, "repo_root_style": { + "default": null, "type": [ "string", "null" ] }, "before_repo_root_style": { + "default": null, "type": [ "string", "null" @@ -4291,30 +4295,35 @@ "type": "string" }, "user_pattern": { + "default": null, "type": [ "string", "null" ] }, "symbol": { + "default": null, "type": [ "string", "null" ] }, "style": { + "default": null, "type": [ "string", "null" ] }, "context_alias": { + "default": null, "type": [ "string", "null" ] }, "user_alias": { + "default": null, "type": [ "string", "null" diff --git a/src/context.rs b/src/context.rs index a24a9889..f7a7dbc1 100644 --- a/src/context.rs +++ b/src/context.rs @@ -86,7 +86,7 @@ impl<'a> Context<'a> { /// Identify the current working directory and create an instance of Context /// for it. "logical-path" is used when a shell allows the "current working directory" /// to be something other than a file system path (like powershell provider specific paths). - pub fn new(arguments: Properties, target: Target) -> Context<'a> { + pub fn new(arguments: Properties, target: Target) -> Self { let shell = Context::get_shell(); // Retrieve the "current directory". @@ -126,7 +126,7 @@ impl<'a> Context<'a> { path: PathBuf, logical_path: PathBuf, env: Env<'a>, - ) -> Context<'a> { + ) -> Self { let config = StarshipConfig::initialize(&get_config_path_os(&env)); // If the vector is zero-length, we should pretend that we didn't get a @@ -184,7 +184,7 @@ impl<'a> Context<'a> { } /// Sets the context config, overwriting the existing config - pub fn set_config(mut self, config: toml::Table) -> Context<'a> { + pub fn set_config(mut self, config: toml::Table) -> Self { self.root_config = StarshipRootConfig::load(&config); self.config = StarshipConfig { config: Some(config), diff --git a/src/module.rs b/src/module.rs index ae8babca..8f034e91 100644 --- a/src/module.rs +++ b/src/module.rs @@ -122,7 +122,7 @@ pub struct Module<'a> { impl<'a> Module<'a> { /// Creates a module with no segments. - pub fn new(name: &str, desc: &str, config: Option<&'a toml::Value>) -> Module<'a> { + pub fn new(name: &str, desc: &str, config: Option<&'a toml::Value>) -> Self { Module { config, name: name.to_string(), diff --git a/src/modules/username.rs b/src/modules/username.rs index 714eec07..f2c5164e 100644 --- a/src/modules/username.rs +++ b/src/modules/username.rs @@ -119,7 +119,6 @@ fn is_ssh_session(context: &Context) -> bool { #[cfg(test)] mod tests { - use gix::config::key; use crate::test::ModuleRenderer; diff --git a/src/print.rs b/src/print.rs index a39a961f..f891948d 100644 --- a/src/print.rs +++ b/src/print.rs @@ -125,7 +125,7 @@ pub fn get_prompt(context: Context) -> String { // color sequences for this specific shell let shell_wrapped_output = wrap_colorseq_for_shell(AnsiStrings(&module_strings).to_string(), context.shell); - write!(buf, "{}", shell_wrapped_output).unwrap(); + write!(buf, "{shell_wrapped_output}").unwrap(); if context.target == Target::Right { // right prompts generally do not allow newlines diff --git a/src/serde_utils.rs b/src/serde_utils.rs index dee31493..04ff4371 100644 --- a/src/serde_utils.rs +++ b/src/serde_utils.rs @@ -103,9 +103,9 @@ impl ValueDeserializer<'_> { } impl<'de> IntoDeserializer<'de> for ValueDeserializer<'de> { - type Deserializer = ValueDeserializer<'de>; + type Deserializer = Self; - fn into_deserializer(self) -> ValueDeserializer<'de> { + fn into_deserializer(self) -> Self { self } } From a1c50be2a4a0e073f433a92f0fad3390d2e967ed Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sat, 22 Jun 2024 09:53:21 +0200 Subject: [PATCH 337/651] chore(deps): handle signpath update (#6000) --- .github/workflows/release.yml | 3 ++- .github/workflows/workflow.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f289ed8e..fc7e3aae 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -127,6 +127,7 @@ jobs: - name: Sign | Upload [Windows] continue-on-error: true if: matrix.os == 'windows-latest' + id: unsigned-artifacts uses: actions/upload-artifact@v4 with: name: unsigned-${{ matrix.name }} @@ -143,7 +144,7 @@ jobs: organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}' project-slug: 'starship' signing-policy-slug: 'test-signing' - github-artifact-name: 'unsigned-${{ matrix.name }}' + github-artifact-id: '${{ steps.unsigned-artifacts.outputs.artifact-id }}' wait-for-completion: false # TODO use release-signing certificate: # signing-policy-slug: 'release-signing' diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 280ec8e8..3736e64d 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -224,6 +224,7 @@ jobs: - name: Sign | Upload Executable [Windows] uses: actions/upload-artifact@v4 continue-on-error: true + id: unsigned-artifacts if: matrix.os == 'windows-latest' && matrix.rust == 'stable' && github.event_name == 'push' && github.repository == 'starship/starship' with: name: unsigned-artifacts-dbg @@ -239,7 +240,7 @@ jobs: api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' organization-id: '${{ vars.SIGNPATH_ORGANIZATION_ID }}' project-slug: 'starship' - github-artifact-name: 'unsigned-artifacts-dbg' + github-artifact-id: '${{ steps.unsigned-artifacts.outputs.artifact-id }}' signing-policy-slug: 'test-signing' wait-for-completion: true output-artifact-directory: target/debug From 9b2e8c41b48f86dd6113ddd1b981ec53d3f64033 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 18:45:59 +0000 Subject: [PATCH 338/651] build(deps): update crate-ci/typos action to v1.22.9 --- .github/workflows/spell-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml index dc3a691c..439ac197 100644 --- a/.github/workflows/spell-check.yml +++ b/.github/workflows/spell-check.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: crate-ci/typos@v1.22.8 + - uses: crate-ci/typos@v1.22.9 From 70d7dd68bdf9ce2e6174e8842e8793dc0f1cbe4f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 18:46:03 +0000 Subject: [PATCH 339/651] build(deps): update reviewdog/action-suggester action to v1.15.0 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 3736e64d..c52fbe3e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -132,7 +132,7 @@ jobs: run: cargo run --locked --features config-schema -- config-schema > .github/config-schema.json - name: Check | Detect Changes - uses: reviewdog/action-suggester@v1.14.0 + uses: reviewdog/action-suggester@v1.15.0 with: tool_name: starship config-schema filter_mode: nofilter From e481b67f83e686f91523b2d7c6e3c7d73bfc2fad Mon Sep 17 00:00:00 2001 From: David Knaack Date: Sun, 23 Jun 2024 11:49:28 +0200 Subject: [PATCH 340/651] build(deps): lock file maintenance & permit new unicode license (#6048) * build(deps): lock file maintenance * chore(deny): allow unicode-3.0 license --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 367 ++++++++++++++++++++++++++----- deny.toml | 1 + docs/package-lock.json | 481 +++++++++++++++++++++++------------------ 3 files changed, 577 insertions(+), 272 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5d9887ce..07a25e57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,9 +82,9 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ "windows-sys 0.52.0", ] @@ -234,9 +234,9 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329972aa325176e89114919f2a80fdae4f4c040f66a370b1a1159c6c0f94e7aa" +checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d" dependencies = [ "async-io", "async-lock", @@ -359,9 +359,9 @@ checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" [[package]] name = "cc" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" [[package]] name = "cfg-if" @@ -436,9 +436,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" [[package]] name = "clru" @@ -720,6 +720,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "dlv-list" version = "0.5.2" @@ -770,9 +781,9 @@ checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", "serde", @@ -780,9 +791,9 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", @@ -1051,7 +1062,7 @@ dependencies = [ "gix-utils", "itoa", "thiserror", - "winnow 0.6.9", + "winnow 0.6.13", ] [[package]] @@ -1104,7 +1115,7 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow 0.6.9", + "winnow 0.6.13", ] [[package]] @@ -1293,7 +1304,7 @@ dependencies = [ "itoa", "smallvec", "thiserror", - "winnow 0.6.9", + "winnow 0.6.13", ] [[package]] @@ -1380,7 +1391,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror", - "winnow 0.6.9", + "winnow 0.6.13", ] [[package]] @@ -1555,9 +1566,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -1598,13 +1609,133 @@ dependencies = [ ] [[package]] -name = "idna" -version = "0.5.0" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "idna" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +dependencies = [ + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", ] [[package]] @@ -1749,6 +1880,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -1798,9 +1935,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" @@ -2080,7 +2217,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.1", + "redox_syscall 0.5.2", "smallvec", "windows-targets 0.52.5", ] @@ -2227,9 +2364,9 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polling" -version = "3.7.1" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6a007746f34ed64099e88783b0ae369eaa3da6392868ba262e2af9b8fbaea1" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" dependencies = [ "cfg-if", "concurrent-queue", @@ -2392,9 +2529,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ "bitflags 2.5.0", ] @@ -2424,9 +2561,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -2435,9 +2572,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "rust-ini" @@ -2724,6 +2861,12 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "starship" version = "1.19.0" @@ -2832,6 +2975,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "systemstat" version = "0.2.3" @@ -3001,6 +3155,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3068,7 +3232,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.9", + "winnow 0.6.13", ] [[package]] @@ -3149,12 +3313,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-bom" version = "2.0.3" @@ -3206,9 +3364,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" dependencies = [ "form_urlencoded", "idna", @@ -3222,10 +3380,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" [[package]] -name = "utf8parse" -version = "0.2.1" +name = "utf16_iter" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "vcpkg" @@ -3426,9 +3596,9 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ "windows-targets 0.52.5", ] @@ -3592,9 +3762,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.9" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" dependencies = [ "memchr", ] @@ -3615,13 +3785,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] -name = "xdg-home" -version = "1.1.0" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "xdg-home" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -3636,10 +3818,34 @@ dependencies = [ ] [[package]] -name = "zbus" -version = "4.2.2" +name = "yoke" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989c3977a7aafa97b12b9a35d21cdcff9b0d2289762b14683f45d66b1ba6c48f" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", + "synstructure", +] + +[[package]] +name = "zbus" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23915fcb26e7a9a9dc05fd93a9870d336d6d032cd7e8cebf1c5c37666489fdd5" dependencies = [ "async-broadcast", "async-executor", @@ -3675,9 +3881,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.2.2" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe9de53245dcf426b7be226a4217dd5e339080e5d46e64a02d6e5dcbf90fca1" +checksum = "02bcca0b586d2f8589da32347b4784ba424c4891ed86aa5b50d5e88f6b2c4f5d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3717,6 +3923,49 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "zvariant" version = "4.1.1" diff --git a/deny.toml b/deny.toml index 89848b36..34106734 100644 --- a/deny.toml +++ b/deny.toml @@ -24,6 +24,7 @@ allow = [ "MIT", "MPL-2.0", "Unicode-DFS-2016", + "Unicode-3.0", "Unlicense", "WTFPL", "Zlib", diff --git a/docs/package-lock.json b/docs/package-lock.json index 2987c7d7..557324ac 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -221,9 +221,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", - "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, "license": "MIT", "bin": { @@ -285,9 +285,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -302,9 +302,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -319,9 +319,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -336,9 +336,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -353,9 +353,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -370,9 +370,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -387,9 +387,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -404,9 +404,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -421,9 +421,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -438,9 +438,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -455,9 +455,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -472,9 +472,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -489,9 +489,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -506,9 +506,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -523,9 +523,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -540,9 +540,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -557,9 +557,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -574,9 +574,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -591,9 +591,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -608,9 +608,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -625,9 +625,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -642,9 +642,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -659,9 +659,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -907,20 +907,20 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.2.tgz", - "integrity": "sha512-guW5JeDzZ7uwOjTfCOFZ2VtVXk5tmkMzBYbKGfXsmAH1qYOej49L5jQDcGmwd6/OgvpmWhzO2GNJkQIFnbwLPQ==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.5.tgz", + "integrity": "sha512-XcQYt6e4L61ruAxHiL3Xg1DL/XkWWjzDdeckB/DtN8jAxoAU+bcxsV6DetC8NafHpL4YpGhxy9iXF0ND/u6HmA==", "dev": true, "license": "MIT" }, "node_modules/@shikijs/transformers": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.2.tgz", - "integrity": "sha512-ndqTWyHnxmsLkowhKWTam26opw8hg5a34y6FAUG/Xf6E49n3MM//nenKxXiWpPYkNPl1KZnYXB1k+Ia46wjOZg==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.5.tgz", + "integrity": "sha512-iuKa1uQtPQEe5vgCsXIb162b/3imRiAIdoF5IqafrTWL1uqZUpipfPjWZPuAAszOzYU//yIYRbhUk8reHVXA/w==", "dev": true, "license": "MIT", "dependencies": { - "shiki": "1.6.2" + "shiki": "1.6.5" } }, "node_modules/@types/estree": { @@ -977,42 +977,42 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz", - "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/shared": "3.4.27", + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz", - "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz", - "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", + "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/compiler-core": "3.4.27", - "@vue/compiler-dom": "3.4.27", - "@vue/compiler-ssr": "3.4.27", - "@vue/shared": "3.4.27", + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.29", + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.38", @@ -1020,47 +1020,49 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz", - "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/devtools-api": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.2.1.tgz", - "integrity": "sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.0.tgz", + "integrity": "sha512-EQ6DIm9AuL9q6IzjjnxeHWgzHzZTI+0ZGyLyG6faLN1e0tzLWPut58OtvFbLP/hbEhE5zPlsdUsH1uFr7RVFYw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^7.2.1" + "@vue/devtools-kit": "^7.3.0" } }, "node_modules/@vue/devtools-kit": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.2.1.tgz", - "integrity": "sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.0.tgz", + "integrity": "sha512-J9C+ue3Ka8cumQY/hMsNTcbb1tczqVBBXFMw4isa5YvPjyIBgEtJBfDSUVIK3nE+YWk7UNliUuCcE1GHEKaGcw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^7.2.1", + "@vue/devtools-shared": "^7.3.0", + "birpc": "^0.2.17", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", - "speakingurl": "^14.0.1" + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" }, "peerDependencies": { "vue": "^3.0.0" } }, "node_modules/@vue/devtools-shared": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.2.1.tgz", - "integrity": "sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.0.tgz", + "integrity": "sha512-bYw4BtZclxzVrYBeYYHzNOcLlvVZbe9tutwtrixTtdgynHvuSJa5KI2MqWiumpGYm2feFI5sHlC8Vt61v4z18g==", "dev": true, "license": "MIT", "dependencies": { @@ -1068,70 +1070,71 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz", - "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/shared": "3.4.27" + "@vue/shared": "3.4.29" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz", - "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz", - "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", "dev": true, "license": "MIT", "dependencies": { - "@vue/runtime-core": "3.4.27", - "@vue/shared": "3.4.27", + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz", - "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { - "vue": "3.4.27" + "vue": "3.4.29" } }, "node_modules/@vue/shared": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz", - "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==", "dev": true, "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz", - "integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", "dev": true, "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.10.0", - "@vueuse/shared": "10.10.0", - "vue-demi": ">=0.14.7" + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1165,32 +1168,32 @@ } }, "node_modules/@vueuse/integrations": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.10.0.tgz", - "integrity": "sha512-vHGeK7X6mkdkpcm1eE9t3Cpm21pNVfZRwrjwwbrEs9XftnSgszF4831G2rei8Dt9cIYJIfFV+iyx/29muimJPQ==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.11.0.tgz", + "integrity": "sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==", "dev": true, "license": "MIT", "dependencies": { - "@vueuse/core": "10.10.0", - "@vueuse/shared": "10.10.0", - "vue-demi": ">=0.14.7" + "@vueuse/core": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { - "async-validator": "*", - "axios": "*", - "change-case": "*", - "drauu": "*", - "focus-trap": "*", - "fuse.js": "*", - "idb-keyval": "*", - "jwt-decode": "*", - "nprogress": "*", - "qrcode": "*", - "sortablejs": "*", - "universal-cookie": "*" + "async-validator": "^4", + "axios": "^1", + "change-case": "^4", + "drauu": "^0.3", + "focus-trap": "^7", + "fuse.js": "^6", + "idb-keyval": "^6", + "jwt-decode": "^3", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^6" }, "peerDependenciesMeta": { "async-validator": { @@ -1259,9 +1262,9 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz", - "integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", "dev": true, "license": "MIT", "funding": { @@ -1269,13 +1272,13 @@ } }, "node_modules/@vueuse/shared": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz", - "integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", "dev": true, "license": "MIT", "dependencies": { - "vue-demi": ">=0.14.7" + "vue-demi": ">=0.14.8" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1332,6 +1335,32 @@ "@algolia/transporter": "4.23.3" } }, + "node_modules/birpc": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.17.tgz", + "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -1353,9 +1382,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1366,29 +1395,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@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" } }, "node_modules/estree-walker": { @@ -1430,6 +1459,19 @@ "dev": true, "license": "MIT" }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", @@ -1535,9 +1577,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", - "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true, "license": "MIT" }, @@ -1586,13 +1628,13 @@ "peer": true }, "node_modules/shiki": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.2.tgz", - "integrity": "sha512-X3hSm5GzzBd/BmPmGfkueOUADLyBoZo1ojYQXhd+NU2VJn458yt4duaS0rVzC+WtqftSV7mTVvDw+OB9AHi3Eg==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.5.tgz", + "integrity": "sha512-iFzypldJG0zeyRHKAhaSGCf+YWXpMMyUyOrCVFBFKGGdF5vrB6jbd66/SQljxV20aSrVZEAQwUto/hhuNi/CIg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.6.2" + "@shikijs/core": "1.6.5" } }, "node_modules/source-map-js": { @@ -1615,6 +1657,19 @@ "node": ">=0.10.0" } }, + "node_modules/superjson": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", + "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/tabbable": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", @@ -1623,13 +1678,13 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", - "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.20.1", + "esbuild": "^0.21.3", "postcss": "^8.4.38", "rollup": "^4.13.0" }, @@ -1719,17 +1774,17 @@ } }, "node_modules/vue": { - "version": "3.4.27", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz", - "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.27", - "@vue/compiler-sfc": "3.4.27", - "@vue/runtime-dom": "3.4.27", - "@vue/server-renderer": "3.4.27", - "@vue/shared": "3.4.27" + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" }, "peerDependencies": { "typescript": "*" From ad09b502877df0e35c949e278e9455b0220b4aa7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Jun 2024 11:37:38 +0000 Subject: [PATCH 341/651] build(deps): lock file maintenance --- Cargo.lock | 331 +++++------------------------------------ docs/package-lock.json | 155 ++++++++++--------- 2 files changed, 117 insertions(+), 369 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07a25e57..2f205e2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -229,7 +229,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -264,7 +264,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -431,7 +431,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -720,17 +720,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "dlv-list" version = "0.5.2" @@ -797,7 +786,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1285,7 +1274,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -1608,134 +1597,14 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "idna" -version = "1.0.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "icu_normalizer", - "icu_properties", - "smallvec", - "utf8_iter", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1827,9 +1696,9 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "lazycell" @@ -1880,12 +1749,6 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -[[package]] -name = "litemap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - [[package]] name = "lock_api" version = "0.4.12" @@ -1971,9 +1834,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -2002,7 +1865,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2281,7 +2144,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2426,9 +2289,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -2638,7 +2501,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2688,7 +2551,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2699,7 +2562,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2721,7 +2584,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -2861,12 +2724,6 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "starship" version = "1.19.0" @@ -2966,26 +2823,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "ff8655ed1d86f3af4ee3fd3263786bc14245ad17c4c7e85ba7187fb3ae028c90" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "systemstat" version = "0.2.3" @@ -3110,7 +2956,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3155,16 +3001,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinyvec" version = "1.6.0" @@ -3254,7 +3090,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3313,6 +3149,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-bom" version = "2.0.3" @@ -3364,9 +3206,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -3379,18 +3221,6 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.2" @@ -3465,7 +3295,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "wasm-bindgen-shared", ] @@ -3487,7 +3317,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3580,7 +3410,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3591,7 +3421,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3784,18 +3614,6 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - [[package]] name = "xdg-home" version = "1.2.0" @@ -3817,30 +3635,6 @@ dependencies = [ "hashlink", ] -[[package]] -name = "yoke" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", -] - [[package]] name = "zbus" version = "4.3.0" @@ -3888,7 +3682,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "zvariant_utils", ] @@ -3920,50 +3714,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", -] - -[[package]] -name = "zerofrom" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", + "syn 2.0.67", ] [[package]] @@ -3988,7 +3739,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", "zvariant_utils", ] @@ -4000,5 +3751,5 @@ checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.67", ] diff --git a/docs/package-lock.json b/docs/package-lock.json index 557324ac..d7d6c976 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -907,20 +907,20 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.5.tgz", - "integrity": "sha512-XcQYt6e4L61ruAxHiL3Xg1DL/XkWWjzDdeckB/DtN8jAxoAU+bcxsV6DetC8NafHpL4YpGhxy9iXF0ND/u6HmA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.9.0.tgz", + "integrity": "sha512-cbSoY8P/jgGByG8UOl3jnP/CWg/Qk+1q+eAKWtcrU3pNoILF8wTsLB0jT44qUBV8Ce1SvA9uqcM9Xf+u3fJFBw==", "dev": true, "license": "MIT" }, "node_modules/@shikijs/transformers": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.6.5.tgz", - "integrity": "sha512-iuKa1uQtPQEe5vgCsXIb162b/3imRiAIdoF5IqafrTWL1uqZUpipfPjWZPuAAszOzYU//yIYRbhUk8reHVXA/w==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.9.0.tgz", + "integrity": "sha512-wo8dNbZtFtVhKtw8BnXIT/FDTGMwEdWcQSIRa78ou14JGkMYxSCBN942W5+IRUifP5BwVUWgkXBYX/M3FUFkeg==", "dev": true, "license": "MIT", "dependencies": { - "shiki": "1.6.5" + "shiki": "1.9.0" } }, "node_modules/@types/estree": { @@ -977,42 +977,42 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", - "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.30.tgz", + "integrity": "sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.29", + "@vue/shared": "3.4.30", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", - "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.30.tgz", + "integrity": "sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-core": "3.4.30", + "@vue/shared": "3.4.30" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", - "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.30.tgz", + "integrity": "sha512-8vElKklHn/UY8+FgUFlQrYAPbtiSB2zcgeRKW7HkpSRn/JjMRmZvuOtwDx036D1aqKNSTtXkWRfqx53Qb+HmMg==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.29", - "@vue/compiler-dom": "3.4.29", - "@vue/compiler-ssr": "3.4.29", - "@vue/shared": "3.4.29", + "@vue/compiler-core": "3.4.30", + "@vue/compiler-dom": "3.4.30", + "@vue/compiler-ssr": "3.4.30", + "@vue/shared": "3.4.30", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.38", @@ -1020,107 +1020,104 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", - "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.30.tgz", + "integrity": "sha512-ZJ56YZGXJDd6jky4mmM0rNaNP6kIbQu9LTKZDhcpddGe/3QIalB1WHHmZ6iZfFNyj5mSypTa4+qDJa5VIuxMSg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-dom": "3.4.30", + "@vue/shared": "3.4.30" } }, "node_modules/@vue/devtools-api": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.0.tgz", - "integrity": "sha512-EQ6DIm9AuL9q6IzjjnxeHWgzHzZTI+0ZGyLyG6faLN1e0tzLWPut58OtvFbLP/hbEhE5zPlsdUsH1uFr7RVFYw==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.3.4.tgz", + "integrity": "sha512-E5dJlLW+NgGb+WS33y99ioOJL2OXpVhje6VwXGJ/q5fNizJDpe67Ml0GBSrlYOKNSjZs2mwcZd7B3e12th3Q0g==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^7.3.0" + "@vue/devtools-kit": "^7.3.4" } }, "node_modules/@vue/devtools-kit": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.0.tgz", - "integrity": "sha512-J9C+ue3Ka8cumQY/hMsNTcbb1tczqVBBXFMw4isa5YvPjyIBgEtJBfDSUVIK3nE+YWk7UNliUuCcE1GHEKaGcw==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.4.tgz", + "integrity": "sha512-DalQZWaFLRyA4qfKT0WT7e+q2AwvYoTwd0pWqswHqcpviXw+oU6FlSJHMrEACB3lBHjN1KBS9Kh527sWIe1vcg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^7.3.0", + "@vue/devtools-shared": "^7.3.4", "birpc": "^0.2.17", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", "speakingurl": "^14.0.1", "superjson": "^2.2.1" - }, - "peerDependencies": { - "vue": "^3.0.0" } }, "node_modules/@vue/devtools-shared": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.0.tgz", - "integrity": "sha512-bYw4BtZclxzVrYBeYYHzNOcLlvVZbe9tutwtrixTtdgynHvuSJa5KI2MqWiumpGYm2feFI5sHlC8Vt61v4z18g==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.4.tgz", + "integrity": "sha512-5S5cHh7oWLZdboujnLteR3rT8UGfKHfA34aGLyFRB/B5TqBxmeLW1Rq32xW6TCDEy4isoYsYHGwJVp6DQcpiDA==", "dev": true, "license": "MIT", "dependencies": { - "rfdc": "^1.3.1" + "rfdc": "^1.4.1" } }, "node_modules/@vue/reactivity": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", - "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.30.tgz", + "integrity": "sha512-bVJurnCe3LS0JII8PPoAA63Zd2MBzcKrEzwdQl92eHCcxtIbxD2fhNwJpa+KkM3Y/A4T5FUnmdhgKwOf6BfbcA==", "dev": true, "license": "MIT", "dependencies": { - "@vue/shared": "3.4.29" + "@vue/shared": "3.4.30" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", - "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.30.tgz", + "integrity": "sha512-qaFEbnNpGz+tlnkaualomogzN8vBLkgzK55uuWjYXbYn039eOBZrWxyXWq/7qh9Bz2FPifZqGjVDl/FXiq9L2g==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/reactivity": "3.4.30", + "@vue/shared": "3.4.30" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", - "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.30.tgz", + "integrity": "sha512-tV6B4YiZRj5QsaJgw2THCy5C1H+2UeywO9tqgWEc21tn85qHEERndHN/CxlyXvSBFrpmlexCIdnqPuR9RM9thw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/reactivity": "3.4.29", - "@vue/runtime-core": "3.4.29", - "@vue/shared": "3.4.29", + "@vue/reactivity": "3.4.30", + "@vue/runtime-core": "3.4.30", + "@vue/shared": "3.4.30", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", - "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.30.tgz", + "integrity": "sha512-TBD3eqR1DeDc0cMrXS/vEs/PWzq1uXxnvjoqQuDGFIEHFIwuDTX/KWAQKIBjyMWLFHEeTDGYVsYci85z2UbTDg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-ssr": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-ssr": "3.4.30", + "@vue/shared": "3.4.30" }, "peerDependencies": { - "vue": "3.4.29" + "vue": "3.4.30" } }, "node_modules/@vue/shared": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", - "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.30.tgz", + "integrity": "sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==", "dev": true, "license": "MIT" }, @@ -1628,13 +1625,13 @@ "peer": true }, "node_modules/shiki": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.5.tgz", - "integrity": "sha512-iFzypldJG0zeyRHKAhaSGCf+YWXpMMyUyOrCVFBFKGGdF5vrB6jbd66/SQljxV20aSrVZEAQwUto/hhuNi/CIg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.9.0.tgz", + "integrity": "sha512-i6//Lqgn7+7nZA0qVjoYH0085YdNk4MC+tJV4bo+HgjgRMJ0JmkLZzFAuvVioJqLkcGDK5GAMpghZEZkCnwxpQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.6.5" + "@shikijs/core": "1.9.0" } }, "node_modules/source-map-js": { @@ -1774,17 +1771,17 @@ } }, "node_modules/vue": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", - "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "version": "3.4.30", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.30.tgz", + "integrity": "sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.29", - "@vue/compiler-sfc": "3.4.29", - "@vue/runtime-dom": "3.4.29", - "@vue/server-renderer": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-dom": "3.4.30", + "@vue/compiler-sfc": "3.4.30", + "@vue/runtime-dom": "3.4.30", + "@vue/server-renderer": "3.4.30", + "@vue/shared": "3.4.30" }, "peerDependencies": { "typescript": "*" From 073e16b4926009565c06897aabda7f807c63c5a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 00:28:26 +0000 Subject: [PATCH 342/651] build(deps): lock file maintenance --- Cargo.lock | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f205e2c..e24546f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -229,7 +229,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -264,7 +264,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -359,9 +359,9 @@ checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" [[package]] name = "cc" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" +checksum = "c891175c3fb232128f48de6590095e59198bbeb8620c310be349bfc3afd12c7b" [[package]] name = "cfg-if" @@ -431,7 +431,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -786,7 +786,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -1122,9 +1122,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367ee9093b0c2b04fd04c5c7c8b6a1082713534eab537597ae343663a518fa99" +checksum = "9eed6931f21491ee0aeb922751bd7ec97b4b2fe8fbfedcb678e2a2dce5f3b8c0" dependencies = [ "bstr", "itoa", @@ -1274,7 +1274,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -1865,7 +1865,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2144,7 +2144,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2501,7 +2501,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2551,7 +2551,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2562,7 +2562,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2584,7 +2584,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -2823,9 +2823,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.67" +version = "2.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8655ed1d86f3af4ee3fd3263786bc14245ad17c4c7e85ba7187fb3ae028c90" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" dependencies = [ "proc-macro2", "quote", @@ -2956,7 +2956,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3090,7 +3090,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3295,7 +3295,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "wasm-bindgen-shared", ] @@ -3317,7 +3317,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3410,7 +3410,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3421,7 +3421,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3682,7 +3682,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "zvariant_utils", ] @@ -3714,7 +3714,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] [[package]] @@ -3739,7 +3739,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", "zvariant_utils", ] @@ -3751,5 +3751,5 @@ checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.68", ] From 3fa035b8005b31ed04e5fd00d29cb8bedd45b831 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 19:03:29 +0000 Subject: [PATCH 343/651] build(deps): update rust crate shadow-rs to 0.29.0 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e24546f7..dd8d8f1a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2649,9 +2649,9 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d75516bdaee8f640543ad1f6e292448c23ce57143f812c3736ab4b0874383df" +checksum = "0a600f795d0894cda22235b44eea4b85c2a35b405f65523645ac8e35b306817a" dependencies = [ "const_format", "is_debug", diff --git a/Cargo.toml b/Cargo.toml index 0d8c699f..794b2ff3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ semver = "1.0.23" serde = { version = "1.0.203", features = ["derive"] } serde_json = "1.0.117" sha1 = "0.10.6" -shadow-rs = { version = "0.28.0", default-features = false } +shadow-rs = { version = "0.29.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux # see: https://github.com/svartalf/rust-battery/issues/33 starship-battery = { version = "0.8.3", optional = true } @@ -117,7 +117,7 @@ features = [ nix = { version = "0.28.0", default-features = false, features = ["feature", "fs", "user"] } [build-dependencies] -shadow-rs = { version = "0.28.0", default-features = false } +shadow-rs = { version = "0.29.0", default-features = false } dunce = "1.0.4" [target.'cfg(windows)'.build-dependencies] From 365c1fb21ba61d0de28aee3671cdb969e22e9e6f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 05:14:00 +0000 Subject: [PATCH 344/651] build(deps): update rust crate serde_json to 1.0.118 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dd8d8f1a..607bddca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2567,9 +2567,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "d947f6b3163d8857ea16c4fa0dd4840d52f3041039a85decd46867eb1abef2e4" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 794b2ff3..f8cc6e3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ regex = { version = "1.10.5", default-features = false, features = ["perf", "std rust-ini = "0.21.0" semver = "1.0.23" serde = { version = "1.0.203", features = ["derive"] } -serde_json = "1.0.117" +serde_json = "1.0.118" sha1 = "0.10.6" shadow-rs = { version = "0.29.0", default-features = false } # battery is optional (on by default) because the crate doesn't currently build for Termux From f4c708862ce3e16805a40c00eb567681ab294e78 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 01:51:12 +0000 Subject: [PATCH 345/651] build(deps): update rust crate log to 0.4.22 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 607bddca..a60bff3a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1761,9 +1761,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "mac-notification-sys" diff --git a/Cargo.toml b/Cargo.toml index f8cc6e3c..7195d493 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ gethostname = "0.4.3" gix = { version = "0.63.0", default-features = false, features = ["max-performance-safe", "revision"] } gix-features = { version = "0.38.2", optional = true } indexmap = { version = "2.2.6", features = ["serde"] } -log = { version = "0.4.21", features = ["std"] } +log = { version = "0.4.22", features = ["std"] } # notify-rust is optional (on by default) because the crate doesn't currently build for darwin with nix # see: https://github.com/NixOS/nixpkgs/issues/160876 notify-rust = { version = "4.11.0", optional = true } From 4425b333d70250f441e8b3a91fe9c60caa695a29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 19:02:41 +0000 Subject: [PATCH 346/651] build(deps): update clap crates --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a60bff3a..5624446e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -391,9 +391,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" dependencies = [ "clap_builder", "clap_derive", @@ -401,9 +401,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" dependencies = [ "anstream", "anstyle", @@ -415,18 +415,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbca90c87c2a04da41e95d1856e8bcd22f159bdbfa147314d2ce5218057b0e58" +checksum = "1d598e88f6874d4b888ed40c71efbcbf4076f1dfbae128a08a8c9e45f710605d" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 7195d493..1f98c32b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,8 +43,8 @@ gix-faster = ["gix-features/zlib-stock", "gix/fast-sha1"] [dependencies] chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "wasmbind"] } -clap = { version = "4.5.7", features = ["derive", "cargo", "unicode"] } -clap_complete = "4.5.6" +clap = { version = "4.5.8", features = ["derive", "cargo", "unicode"] } +clap_complete = "4.5.7" dirs = "5.0.1" dunce = "1.0.4" gethostname = "0.4.3" From e0281868c9d7801fc25f64f86ab8312d2a5a1794 Mon Sep 17 00:00:00 2001 From: Evan Mattiza Date: Fri, 28 Jun 2024 16:39:40 -0500 Subject: [PATCH 347/651] feat(purescript): add support for spago-next configuration files (#6036) * update: add purescript spago-next configuration files in upcoming spago projects, the configuration file is changing from spago.dhall -> spago.yaml and spago.lock. This will detect both styles for the time being * fix typo did not update test. spago.yaml -> spago.lock in the spago lock file test case --- .github/config-schema.json | 8 ++++++-- docs/config/README.md | 22 ++++++++++++---------- src/configs/purescript.rs | 2 +- src/modules/purescript.rs | 22 ++++++++++++++++++++++ 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/.github/config-schema.json b/.github/config-schema.json index 4ec65c32..37144b21 100644 --- a/.github/config-schema.json +++ b/.github/config-schema.json @@ -1376,7 +1376,9 @@ "purs" ], "detect_files": [ - "spago.dhall" + "spago.dhall", + "spago.yaml", + "spago.lock" ], "detect_folders": [], "disabled": false, @@ -5156,7 +5158,9 @@ }, "detect_files": { "default": [ - "spago.dhall" + "spago.dhall", + "spago.yaml", + "spago.lock" ], "type": "array", "items": { diff --git a/docs/config/README.md b/docs/config/README.md index cfaf04d6..ccc3ea15 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -3593,20 +3593,22 @@ The `purescript` module shows the currently installed version of [PureScript](ht By default the module will be shown if any of the following conditions are met: - The current directory contains a `spago.dhall` file +- The current directory contains a `spago.yaml` file +- The current directory contains a `spago.lock` file - The current directory contains a file with the `.purs` extension ### Options -| Option | Default | Description | -| ------------------- | ------------------------------------ | ------------------------------------------------------------------------- | -| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | -| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | -| `symbol` | `'<=> '` | The symbol used before displaying the version of PureScript. | -| `detect_extensions` | `['purs']` | Which extensions should trigger this module. | -| `detect_files` | `['spago.dhall']` | Which filenames should trigger this module. | -| `detect_folders` | `[]` | Which folders should trigger this module. | -| `style` | `'bold white'` | The style for the module. | -| `disabled` | `false` | Disables the `purescript` module. | +| Option | Default | Description | +| ------------------- | --------------------------------------------- | ------------------------------------------------------------------------- | +| `format` | `'via [$symbol($version )]($style)'` | The format for the module. | +| `version_format` | `'v${raw}'` | The version format. Available vars are `raw`, `major`, `minor`, & `patch` | +| `symbol` | `'<=> '` | The symbol used before displaying the version of PureScript. | +| `detect_extensions` | `['purs']` | Which extensions should trigger this module. | +| `detect_files` | `['spago.dhall', 'spago.yaml', 'spago.lock']` | Which filenames should trigger this module. | +| `detect_folders` | `[]` | Which folders should trigger this module. | +| `style` | `'bold white'` | The style for the module. | +| `disabled` | `false` | Disables the `purescript` module. | ### Variables diff --git a/src/configs/purescript.rs b/src/configs/purescript.rs index a172d52b..2e452aa9 100644 --- a/src/configs/purescript.rs +++ b/src/configs/purescript.rs @@ -27,7 +27,7 @@ impl<'a> Default for PureScriptConfig<'a> { style: "bold white", disabled: false, detect_extensions: vec!["purs"], - detect_files: vec!["spago.dhall"], + detect_files: vec!["spago.dhall", "spago.yaml", "spago.lock"], detect_folders: vec![], } } diff --git a/src/modules/purescript.rs b/src/modules/purescript.rs index b46ba573..577706dc 100644 --- a/src/modules/purescript.rs +++ b/src/modules/purescript.rs @@ -92,4 +92,26 @@ mod tests { assert_eq!(expected, actual); dir.close() } + + #[test] + fn folder_with_spago_yaml_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("spago.yaml"))?.sync_all()?; + + let actual = ModuleRenderer::new("purescript").path(dir.path()).collect(); + let expected = Some(format!("via {}", Color::White.bold().paint("<=> v0.13.5 "))); + assert_eq!(expected, actual); + dir.close() + } + + #[test] + fn folder_with_spago_lock_file() -> io::Result<()> { + let dir = tempfile::tempdir()?; + File::create(dir.path().join("spago.lock"))?.sync_all()?; + + let actual = ModuleRenderer::new("purescript").path(dir.path()).collect(); + let expected = Some(format!("via {}", Color::White.bold().paint("<=> v0.13.5 "))); + assert_eq!(expected, actual); + dir.close() + } } From 9a3e87f2cbaa8ca4b8dea41f4f56ff297e94bb1a Mon Sep 17 00:00:00 2001 From: Jovan Gerodetti Date: Fri, 28 Jun 2024 23:40:35 +0200 Subject: [PATCH 348/651] feat(color): add prev_fg and prev_bg as color specifiers based on the previous foreground/background colors respectively (#6017) feat(color): add prevfg,prevbg as color specifiers based on the previous foreground/background colors respectively Co-authored-by: Vladimir Lushnikov --- docs/advanced-config/README.md | 4 +- src/config.rs | 275 +++++++++++++++++++++++------- src/formatter/string_formatter.rs | 13 +- src/module.rs | 14 +- src/segment.rs | 38 ++--- 5 files changed, 250 insertions(+), 94 deletions(-) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index f0efae1c..f102f5c6 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -358,7 +358,9 @@ Style strings are a list of words, separated by whitespace. The words are not ca - `` - `none` -where `` is a color specifier (discussed below). `fg:` and `` currently do the same thing, though this may change in the future. `inverted` swaps the background and foreground colors. The order of words in the string does not matter. +where `` is a color specifier (discussed below). `fg:` and `` currently do the same thing, though this may change in the future. +`` can also be set to `prev_fg` or `prev_bg` which evaluates to the previous item's foreground or background color respectively if available or `none` otherwise. +`inverted` swaps the background and foreground colors. The order of words in the string does not matter. The `none` token overrides all other tokens in a string if it is not part of a `bg:` specifier, so that e.g. `fg:red none fg:blue` will still create a string with no styling. `bg:none` sets the background to the default color so `fg:red bg:none` is equivalent to `red` or `fg:red` and `bg:green fg:red bg:none` is also equivalent to `fg:red` or `red`. It may become an error to use `none` in conjunction with other tokens in the future. diff --git a/src/config.rs b/src/config.rs index 9ff37f1d..6a710cc6 100644 --- a/src/config.rs +++ b/src/config.rs @@ -261,7 +261,7 @@ impl StarshipConfig { } /// Deserialize a style string in the starship format with serde -pub fn deserialize_style<'de, D>(de: D) -> Result +pub fn deserialize_style<'de, D>(de: D) -> Result where D: Deserializer<'de>, { @@ -270,6 +270,88 @@ where }) } +#[derive(Clone, Copy, Debug, PartialEq)] +enum PrevColor { + Fg, + Bg, +} + +#[derive(Clone, Copy, Debug, Default, PartialEq)] +/// Wrapper for `nu_ansi_term::Style` that supports referencing the previous style's foreground/background color. +pub struct Style { + style: nu_ansi_term::Style, + bg: Option, + fg: Option, +} + +impl Style { + pub fn to_ansi_style(&self, prev: Option<&nu_ansi_term::Style>) -> nu_ansi_term::Style { + let Some(prev_style) = prev else { + return self.style; + }; + + let mut current = self.style; + + if let Some(prev_color) = self.bg { + match prev_color { + PrevColor::Fg => current.background = prev_style.foreground, + PrevColor::Bg => current.background = prev_style.background, + } + } + + if let Some(prev_color) = self.fg { + match prev_color { + PrevColor::Fg => current.foreground = prev_style.foreground, + PrevColor::Bg => current.foreground = prev_style.background, + } + } + + current + } + + fn map_style(&self, f: F) -> Self + where + F: FnOnce(&nu_ansi_term::Style) -> nu_ansi_term::Style, + { + Style { + style: f(&self.style), + ..*self + } + } + + fn fg(&self, prev_color: PrevColor) -> Self { + Self { + fg: Some(prev_color), + ..*self + } + } + + fn bg(&self, prev_color: PrevColor) -> Self { + Self { + bg: Some(prev_color), + ..*self + } + } +} + +impl From for Style { + fn from(value: nu_ansi_term::Style) -> Self { + Style { + style: value, + ..Default::default() + } + } +} + +impl From for Style { + fn from(value: nu_ansi_term::Color) -> Self { + Style { + style: value.into(), + ..Default::default() + } + } +} + /** Parse a style string which represents an ansi style. Valid tokens in the style string include the following: - 'fg:' (specifies that the color read should be a foreground color) @@ -279,15 +361,14 @@ where - 'italic' - 'inverted' - 'blink' + - 'prev_fg' (specifies the color should be the previous foreground color) + - 'prev_bg' (specifies the color should be the previous background color) - '' (see the `parse_color_string` doc for valid color strings) */ -pub fn parse_style_string( - style_string: &str, - context: Option<&Context>, -) -> Option { +pub fn parse_style_string(style_string: &str, context: Option<&Context>) -> Option

KQRp!{^-l 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∋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