From 6e5788adba72ac71391e5ff4900dbe8e1b8c59a5 Mon Sep 17 00:00:00 2001 From: etienne-k <2804556+etienne-k@users.noreply.github.com> Date: Tue, 19 Jul 2022 22:49:34 +0200 Subject: [PATCH 01/29] feat(tools): Add a link to the Helix editor --- locales/de/tools.ftl | 1 + locales/en-US/tools.ftl | 1 + locales/es/tools.ftl | 1 + locales/fa/tools.ftl | 1 + locales/fr/tools.ftl | 1 + locales/it/tools.ftl | 1 + locales/ja/tools.ftl | 1 + locales/ko/tools.ftl | 1 + locales/pl/tools.ftl | 1 + locales/pt-BR/tools.ftl | 1 + locales/ru/tools.ftl | 1 + locales/tr/tools.ftl | 1 + locales/zh-CN/tools.ftl | 1 + locales/zh-TW/tools.ftl | 1 + templates/components/tools/editors.html.hbs | 4 ++++ 15 files changed, 18 insertions(+) diff --git a/locales/de/tools.ftl b/locales/de/tools.ftl index 1917d68f..7c4f22dd 100644 --- a/locales/de/tools.ftl +++ b/locales/de/tools.ftl @@ -30,6 +30,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/en-US/tools.ftl b/locales/en-US/tools.ftl index 8bea6f78..4a89b09a 100644 --- a/locales/en-US/tools.ftl +++ b/locales/en-US/tools.ftl @@ -172,6 +172,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/es/tools.ftl b/locales/es/tools.ftl index 9958cb2a..736fd1b5 100644 --- a/locales/es/tools.ftl +++ b/locales/es/tools.ftl @@ -122,6 +122,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/fa/tools.ftl b/locales/fa/tools.ftl index 561760ce..e523b960 100644 --- a/locales/fa/tools.ftl +++ b/locales/fa/tools.ftl @@ -22,6 +22,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/fr/tools.ftl b/locales/fr/tools.ftl index 360eff9e..1ce412c2 100644 --- a/locales/fr/tools.ftl +++ b/locales/fr/tools.ftl @@ -107,6 +107,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/it/tools.ftl b/locales/it/tools.ftl index e25b0cc2..ed7da435 100644 --- a/locales/it/tools.ftl +++ b/locales/it/tools.ftl @@ -97,6 +97,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/ja/tools.ftl b/locales/ja/tools.ftl index f97a3406..fc9045ae 100644 --- a/locales/ja/tools.ftl +++ b/locales/ja/tools.ftl @@ -98,6 +98,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/ko/tools.ftl b/locales/ko/tools.ftl index 5bc1482a..a62002a3 100644 --- a/locales/ko/tools.ftl +++ b/locales/ko/tools.ftl @@ -57,6 +57,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/pl/tools.ftl b/locales/pl/tools.ftl index 57981b6b..7fc3b6a9 100644 --- a/locales/pl/tools.ftl +++ b/locales/pl/tools.ftl @@ -42,6 +42,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/pt-BR/tools.ftl b/locales/pt-BR/tools.ftl index 9dd2e9fb..eda90fc2 100644 --- a/locales/pt-BR/tools.ftl +++ b/locales/pt-BR/tools.ftl @@ -147,6 +147,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/ru/tools.ftl b/locales/ru/tools.ftl index c66410ff..8d4cc76c 100644 --- a/locales/ru/tools.ftl +++ b/locales/ru/tools.ftl @@ -120,6 +120,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/tr/tools.ftl b/locales/tr/tools.ftl index 4f37dd7d..01f8ad38 100644 --- a/locales/tr/tools.ftl +++ b/locales/tr/tools.ftl @@ -131,6 +131,7 @@ tools-editor-vscode = { ENGLISH("VS Code") } tools-editor-sublime = { ENGLISH("Sublime Text") } tools-editor-rover = { ENGLISH("RustRover") } tools-editor-eclipse = { ENGLISH("Eclipse") } +tools-editor-helix = { ENGLISH("Helix") } tools-editor-vim = { ENGLISH("Vim/Neovim") } tools-editor-emacs = { ENGLISH("Emacs") } tools-editor-visual-studio = { ENGLISH("Visual Studio") } diff --git a/locales/zh-CN/tools.ftl b/locales/zh-CN/tools.ftl index 8e563206..dbc3077b 100644 --- a/locales/zh-CN/tools.ftl +++ b/locales/zh-CN/tools.ftl @@ -134,6 +134,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/locales/zh-TW/tools.ftl b/locales/zh-TW/tools.ftl index c74ccdea..029375cb 100644 --- a/locales/zh-TW/tools.ftl +++ b/locales/zh-TW/tools.ftl @@ -108,6 +108,7 @@ tools-editor-vscode = VS Code tools-editor-sublime = Sublime Text tools-editor-rover = RustRover tools-editor-eclipse = Eclipse +tools-editor-helix = Helix tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-visual-studio = Visual Studio diff --git a/templates/components/tools/editors.html.hbs b/templates/components/tools/editors.html.hbs index 37bb8455..dac0a0b7 100644 --- a/templates/components/tools/editors.html.hbs +++ b/templates/components/tools/editors.html.hbs @@ -15,6 +15,10 @@ {{fluent "tools-editor-eclipse"}} +
+ {{fluent "tools-editor-helix"}} +
{{fluent "tools-editor-vim"}} From 4b70c54022969662ecabd06802feb1e71f5aa4d7 Mon Sep 17 00:00:00 2001 From: Ali Sajid Imami Date: Fri, 16 Sep 2022 12:48:10 -0400 Subject: [PATCH 02/29] docs: add neovim to editors closes #1613 --- locales/de/tools.ftl | 2 +- locales/en-US/tools.ftl | 2 +- locales/es/tools.ftl | 2 +- locales/fa/tools.ftl | 2 +- locales/fr/tools.ftl | 2 +- locales/it/tools.ftl | 2 +- locales/ja/tools.ftl | 2 +- locales/ko/tools.ftl | 2 +- locales/pl/tools.ftl | 2 +- locales/pt-BR/tools.ftl | 2 +- locales/ru/tools.ftl | 2 +- locales/tr/tools.ftl | 2 +- locales/zh-CN/tools.ftl | 2 +- locales/zh-TW/tools.ftl | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/locales/de/tools.ftl b/locales/de/tools.ftl index c6b51634..ea2ef1e2 100644 --- a/locales/de/tools.ftl +++ b/locales/de/tools.ftl @@ -31,6 +31,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/en-US/tools.ftl b/locales/en-US/tools.ftl index 98f6691f..73293a07 100644 --- a/locales/en-US/tools.ftl +++ b/locales/en-US/tools.ftl @@ -173,6 +173,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ Family tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/es/tools.ftl b/locales/es/tools.ftl index f252c77b..0ba2b3b4 100644 --- a/locales/es/tools.ftl +++ b/locales/es/tools.ftl @@ -123,6 +123,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/fa/tools.ftl b/locales/fa/tools.ftl index a3984c6a..e19dfcd2 100644 --- a/locales/fa/tools.ftl +++ b/locales/fa/tools.ftl @@ -23,6 +23,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/fr/tools.ftl b/locales/fr/tools.ftl index 61c918b6..5f38a96f 100644 --- a/locales/fr/tools.ftl +++ b/locales/fr/tools.ftl @@ -108,6 +108,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/it/tools.ftl b/locales/it/tools.ftl index 3bb0f0de..bdc43270 100644 --- a/locales/it/tools.ftl +++ b/locales/it/tools.ftl @@ -98,6 +98,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = Intellij IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/ja/tools.ftl b/locales/ja/tools.ftl index 3e80ebd1..8b97d946 100644 --- a/locales/ja/tools.ftl +++ b/locales/ja/tools.ftl @@ -99,6 +99,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/ko/tools.ftl b/locales/ko/tools.ftl index 50301682..bd24184c 100644 --- a/locales/ko/tools.ftl +++ b/locales/ko/tools.ftl @@ -58,6 +58,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/pl/tools.ftl b/locales/pl/tools.ftl index 99567b5d..fca577c4 100644 --- a/locales/pl/tools.ftl +++ b/locales/pl/tools.ftl @@ -43,6 +43,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/pt-BR/tools.ftl b/locales/pt-BR/tools.ftl index b5779619..da06711d 100644 --- a/locales/pt-BR/tools.ftl +++ b/locales/pt-BR/tools.ftl @@ -148,6 +148,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/ru/tools.ftl b/locales/ru/tools.ftl index 49a7b54b..7224b4fb 100644 --- a/locales/ru/tools.ftl +++ b/locales/ru/tools.ftl @@ -121,6 +121,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/tr/tools.ftl b/locales/tr/tools.ftl index c3781615..980c2035 100644 --- a/locales/tr/tools.ftl +++ b/locales/tr/tools.ftl @@ -132,6 +132,6 @@ tools-editor-sublime = { ENGLISH("Sublime Text") } tools-editor-atom = { ENGLISH("Atom") } tools-editor-idea = { ENGLISH("IntelliJ IDEA") } tools-editor-eclipse = { ENGLISH("Eclipse") } -tools-editor-vim = { ENGLISH("Vim") } +tools-editor-vim = { ENGLISH("Vim/NeoVim") } tools-editor-emacs = { ENGLISH("Emacs") } tools-editor-geany = { ENGLISH("Geany") } diff --git a/locales/zh-CN/tools.ftl b/locales/zh-CN/tools.ftl index b231b519..3e121553 100644 --- a/locales/zh-CN/tools.ftl +++ b/locales/zh-CN/tools.ftl @@ -135,6 +135,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/zh-TW/tools.ftl b/locales/zh-TW/tools.ftl index 1c0fcd38..2dc45b7e 100644 --- a/locales/zh-TW/tools.ftl +++ b/locales/zh-TW/tools.ftl @@ -109,6 +109,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim +tools-editor-vim = Vim/NeoVim tools-editor-emacs = Emacs tools-editor-geany = Geany From df466aa73e4fd9a2ff88262f5f261b9832b288ce Mon Sep 17 00:00:00 2001 From: Ali Sajid Imami Date: Fri, 16 Sep 2022 23:44:16 -0400 Subject: [PATCH 03/29] docs: update grammer to idicate a line is an explanation closes #1285 --- locales/en-US/learn.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en-US/learn.ftl b/locales/en-US/learn.ftl index 29b6b14a..4d07b0e9 100644 --- a/locales/en-US/learn.ftl +++ b/locales/en-US/learn.ftl @@ -109,7 +109,7 @@ learn-generating-steps =

Let’s write a small application with our new Rust

Cargo.toml is the manifest file for Rust. It’s where you keep metadata for your project, as well as dependencies.

src/main.rs is where we’ll write our application code.


-

cargo new generates a "Hello, world!" project for us! We can run this program by moving into the new directory that we made and running this in our terminal:

+

The cargo new step generated a "Hello, world!" project for us! We can run this program by moving into the new directory that we made and running this in our terminal:

cargo run

You should see this in your terminal:

{ $output } From a03462f080edf2edf34d3ceacb70d4f410eb7730 Mon Sep 17 00:00:00 2001 From: Ali Sajid Imami <395482+AliSajid@users.noreply.github.com> Date: Sun, 14 Jan 2024 13:36:13 -0500 Subject: [PATCH 04/29] Update locales/en-US/tools.ftl Co-authored-by: David Tolnay --- locales/en-US/tools.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en-US/tools.ftl b/locales/en-US/tools.ftl index 73293a07..dca1ac04 100644 --- a/locales/en-US/tools.ftl +++ b/locales/en-US/tools.ftl @@ -173,6 +173,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ Family tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany From ac302b591f6c0e1941864b9ed4135b1f6cdb5ae8 Mon Sep 17 00:00:00 2001 From: Ali Sajid Imami <395482+AliSajid@users.noreply.github.com> Date: Sun, 14 Jan 2024 13:49:48 -0500 Subject: [PATCH 05/29] docs: modify capitalization of NeoVim to Neovim for consistency --- locales/de/tools.ftl | 2 +- locales/es/tools.ftl | 2 +- locales/fa/tools.ftl | 2 +- locales/fr/tools.ftl | 2 +- locales/it/tools.ftl | 2 +- locales/ja/tools.ftl | 2 +- locales/ko/tools.ftl | 2 +- locales/pl/tools.ftl | 2 +- locales/pt-BR/tools.ftl | 2 +- locales/ru/tools.ftl | 2 +- locales/tr/tools.ftl | 2 +- locales/zh-CN/tools.ftl | 2 +- locales/zh-TW/tools.ftl | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/locales/de/tools.ftl b/locales/de/tools.ftl index ea2ef1e2..ff6920d6 100644 --- a/locales/de/tools.ftl +++ b/locales/de/tools.ftl @@ -31,6 +31,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/es/tools.ftl b/locales/es/tools.ftl index 0ba2b3b4..6c16cb2e 100644 --- a/locales/es/tools.ftl +++ b/locales/es/tools.ftl @@ -123,6 +123,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/fa/tools.ftl b/locales/fa/tools.ftl index e19dfcd2..6dd44fcb 100644 --- a/locales/fa/tools.ftl +++ b/locales/fa/tools.ftl @@ -23,6 +23,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/fr/tools.ftl b/locales/fr/tools.ftl index 5f38a96f..7522c4c2 100644 --- a/locales/fr/tools.ftl +++ b/locales/fr/tools.ftl @@ -108,6 +108,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/it/tools.ftl b/locales/it/tools.ftl index bdc43270..0f262f48 100644 --- a/locales/it/tools.ftl +++ b/locales/it/tools.ftl @@ -98,6 +98,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = Intellij IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/ja/tools.ftl b/locales/ja/tools.ftl index 8b97d946..aa37ceac 100644 --- a/locales/ja/tools.ftl +++ b/locales/ja/tools.ftl @@ -99,6 +99,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/ko/tools.ftl b/locales/ko/tools.ftl index bd24184c..01bb6a5a 100644 --- a/locales/ko/tools.ftl +++ b/locales/ko/tools.ftl @@ -58,6 +58,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/pl/tools.ftl b/locales/pl/tools.ftl index fca577c4..ac535669 100644 --- a/locales/pl/tools.ftl +++ b/locales/pl/tools.ftl @@ -43,6 +43,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/pt-BR/tools.ftl b/locales/pt-BR/tools.ftl index da06711d..49c5b2ab 100644 --- a/locales/pt-BR/tools.ftl +++ b/locales/pt-BR/tools.ftl @@ -148,6 +148,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/ru/tools.ftl b/locales/ru/tools.ftl index 7224b4fb..f5a2e828 100644 --- a/locales/ru/tools.ftl +++ b/locales/ru/tools.ftl @@ -121,6 +121,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/tr/tools.ftl b/locales/tr/tools.ftl index 980c2035..89fdc6c1 100644 --- a/locales/tr/tools.ftl +++ b/locales/tr/tools.ftl @@ -132,6 +132,6 @@ tools-editor-sublime = { ENGLISH("Sublime Text") } tools-editor-atom = { ENGLISH("Atom") } tools-editor-idea = { ENGLISH("IntelliJ IDEA") } tools-editor-eclipse = { ENGLISH("Eclipse") } -tools-editor-vim = { ENGLISH("Vim/NeoVim") } +tools-editor-vim = { ENGLISH("Vim/Neovim") } tools-editor-emacs = { ENGLISH("Emacs") } tools-editor-geany = { ENGLISH("Geany") } diff --git a/locales/zh-CN/tools.ftl b/locales/zh-CN/tools.ftl index 3e121553..55eedc91 100644 --- a/locales/zh-CN/tools.ftl +++ b/locales/zh-CN/tools.ftl @@ -135,6 +135,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany diff --git a/locales/zh-TW/tools.ftl b/locales/zh-TW/tools.ftl index 2dc45b7e..09a13829 100644 --- a/locales/zh-TW/tools.ftl +++ b/locales/zh-TW/tools.ftl @@ -109,6 +109,6 @@ tools-editor-sublime = Sublime Text tools-editor-atom = Atom tools-editor-idea = IntelliJ IDEA tools-editor-eclipse = Eclipse -tools-editor-vim = Vim/NeoVim +tools-editor-vim = Vim/Neovim tools-editor-emacs = Emacs tools-editor-geany = Geany From f798faf5967ee1643687b7731f0fb3253352d9f2 Mon Sep 17 00:00:00 2001 From: eth3lbert Date: Wed, 1 May 2024 01:49:23 +0800 Subject: [PATCH 06/29] Add /governance/teams/crates-io redirect The `crates-io` team was moved to a `dev-tools` subteam. This caused existing blogpost links to fail since the server is not aware of this change. This commit fixes the issue by adding an explicit redirect. --- src/redirect.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/redirect.rs b/src/redirect.rs index db6c8bc3..80616713 100644 --- a/src/redirect.rs +++ b/src/redirect.rs @@ -29,6 +29,10 @@ static PAGE_REDIRECTS: &[(&str, &str)] = &[ "governance/teams/release", "governance/teams/infra#team-release", ), + ( + "governance/teams/crates-io", + "governance/teams/dev-tools#team-crates-io", + ), ]; static STATIC_FILES_REDIRECTS: &[(&str, &str)] = &[ From c0fad5e67419ea026208ce5165429721d88d7b18 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 20 May 2024 14:11:15 +0200 Subject: [PATCH 07/29] Update dependencies --- Cargo.lock | 1186 ++++++++++++++++++++++++++++---------------------- src/teams.rs | 2 + 2 files changed, 661 insertions(+), 527 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d1de248d..441d9d2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,20 +2,35 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "aho-corasick" -version = "0.7.19" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "async-stream" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", @@ -24,46 +39,67 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4655ae1a7b0cdf149156f780c5bf3f1352bc53cbd9e0a361a7ef7b22947e965" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.65", ] [[package]] name = "atomic" -version = "0.5.1" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" + +[[package]] +name = "atomic" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" +checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" dependencies = [ - "autocfg", + "bytemuck", ] [[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 = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] [[package]] name = "base64" -version = "0.13.1" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "binascii" @@ -79,42 +115,48 @@ 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-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" [[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 = "bytes" -version = "1.2.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.73" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" [[package]] name = "cfg-if" @@ -124,9 +166,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cookie" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" dependencies = [ "percent-encoding", "time", @@ -135,9 +177,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", @@ -145,37 +187,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crypto-common" @@ -187,6 +225,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "devise" version = "0.4.1" @@ -213,18 +260,18 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35b50dba0afdca80b187392b24f2499a88c336d5a8493e4b4ccfb608708be56a" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.10", + "syn 2.0.65", ] [[package]] name = "digest" -version = "0.10.5" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", @@ -232,26 +279,26 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "either" -version = "1.8.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "encoding_rs" -version = "0.8.31" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -264,57 +311,54 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "fastrand" -version = "1.8.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "figment" -version = "0.10.8" +version = "0.10.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e56602b469b2201400dec66a66aec5a9b8761ee97cd1b8c96ab2483fcc16cc9" +checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" dependencies = [ - "atomic", + "atomic 0.6.0", "pear", "serde", - "toml", + "toml 0.8.13", "uncased", "version_check", ] [[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 0.4.1", + "windows-sys 0.52.0", ] [[package]] name = "fluent" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7" +checksum = "bb74634707bebd0ce645a981148e8fb8c7bccd4c33c652aeffd28bf2f96d555a" dependencies = [ - "fluent-bundle 0.15.2", - "unic-langid 0.9.1", + "fluent-bundle 0.15.3", + "unic-langid 0.9.5", ] [[package]] @@ -334,18 +378,18 @@ dependencies = [ [[package]] name = "fluent-bundle" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd" +checksum = "7fe0a21ee80050c678013f82edf4b705fe2f26f1f9877593d13198612503f493" dependencies = [ "fluent-langneg 0.13.0", - "fluent-syntax 0.11.0", - "intl-memoizer 0.5.1", + "fluent-syntax 0.11.1", + "intl-memoizer 0.5.2", "intl_pluralrules 7.0.2", "rustc-hash", - "self_cell", + "self_cell 0.10.3", "smallvec", - "unic-langid 0.9.1", + "unic-langid 0.9.5", ] [[package]] @@ -363,7 +407,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94" dependencies = [ - "unic-langid 0.9.1", + "unic-langid 0.9.5", ] [[package]] @@ -383,9 +427,9 @@ checksum = "ac0f7e83d14cccbf26e165d8881dcac5891af0d85a88543c09dd72ebd31d91ba" [[package]] name = "fluent-syntax" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78" +checksum = "2a530c4694a6a8d528794ee9bbd8ba0122e779629ac908d15ad5a7ae7763a33d" dependencies = [ "thiserror", ] @@ -413,9 +457,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -431,9 +475,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -445,9 +489,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -455,33 +499,33 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-io" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-sink" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -505,9 +549,9 @@ dependencies = [ [[package]] name = "generator" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a20a288a94683f5f4da0adecdbe095c94a77c295e514cc6484e9394dd8376e" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" dependencies = [ "cc", "libc", @@ -518,9 +562,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -528,26 +572,32 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", "wasi", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "h2" -version = "0.3.14" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -555,7 +605,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.1", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -564,9 +614,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.6" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" dependencies = [ "log", "pest", @@ -585,7 +635,7 @@ dependencies = [ "fluent", "fluent-bundle 0.11.0", "fluent-langneg 0.12.1", - "fluent-syntax 0.11.0", + "fluent-syntax 0.11.1", "handlebars", "lazy_static", "serde_json", @@ -600,30 +650,21 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "http" -version = "0.2.8" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -632,9 +673,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -649,15 +690,15 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "0.14.20" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -692,9 +733,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -702,9 +743,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -712,12 +753,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.5", "serde", ] @@ -747,15 +788,6 @@ dependencies = [ "libc", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - [[package]] name = "intl-memoizer" version = "0.4.0" @@ -768,12 +800,12 @@ dependencies = [ [[package]] name = "intl-memoizer" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f" +checksum = "fe22e020fce238ae18a6d5d8c502ee76a52a6e880d99477657e6acc30ec57bda" dependencies = [ - "type-map 0.4.0", - "unic-langid 0.9.1", + "type-map 0.5.0", + "unic-langid 0.9.5", ] [[package]] @@ -792,46 +824,46 @@ version = "7.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972" dependencies = [ - "unic-langid 0.9.1", + "unic-langid 0.9.5", ] [[package]] name = "ipnet" -version = "2.5.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.1", - "rustix", - "windows-sys 0.48.0", + "hermit-abi", + "libc", + "windows-sys 0.52.0", ] [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "kqueue" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" dependencies = [ "kqueue-sys", "libc", @@ -839,9 +871,9 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" dependencies = [ "bitflags 1.3.2", "libc", @@ -855,9 +887,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "linked-hash-map" @@ -867,15 +899,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -883,12 +915,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "loom" @@ -911,38 +940,47 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] [[package]] name = "mio" -version = "0.8.4" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "log", "wasi", - "windows-sys 0.36.1", + "windows-sys 0.48.0", ] [[package]] name = "multer" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed4198ce7a4cbd2a57af78d28c6fbb57d81ac5f1d6ad79ac6c5587419cbdf22" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" dependencies = [ "bytes", "encoding_rs", @@ -960,9 +998,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" dependencies = [ "lazy_static", "libc", @@ -978,11 +1016,11 @@ dependencies = [ [[package]] name = "normpath" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972dec05f98e7c787ede35d7a9ea4735eb7788c299287352757b3def6cc1f7b5" +checksum = "5831952a9476f2fed74b77d74182fa5ddc4d21c72ec45a333b250e3ed0272804" dependencies = [ - "windows-sys 0.45.0", + "windows-sys 0.52.0", ] [[package]] @@ -991,7 +1029,7 @@ version = "6.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "crossbeam-channel", "filetime", "fsevent-sys", @@ -1014,29 +1052,44 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.1.19", + "hermit-abi", "libc", ] +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" -version = "1.15.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.55" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -1047,13 +1100,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] @@ -1064,9 +1117,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.90" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -1082,9 +1135,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[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", @@ -1092,61 +1145,62 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.5.1", "smallvec", - "windows-sys 0.45.0", + "windows-targets 0.52.5", ] [[package]] name = "pear" -version = "0.2.4" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec95680a7087503575284e5063e14b694b7a9c0b065e5dceec661e0497127e8" +checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" dependencies = [ "inlinable_string", "pear_codegen", - "yansi 0.5.1", + "yansi", ] [[package]] name = "pear_codegen" -version = "0.2.4" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9661a3a53f93f09f2ea882018e4d7c88f6ff2956d809a276060476fd8c879d3c" +checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.10", + "syn 2.0.65", ] [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.5.6" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.5.6" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" dependencies = [ "pest", "pest_generator", @@ -1154,22 +1208,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.6" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "pest_meta" -version = "2.5.6" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" dependencies = [ "once_cell", "pest", @@ -1178,9 +1232,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1190,15 +1244,21 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-hack" @@ -1208,31 +1268,31 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" dependencies = [ "unicode-ident", ] [[package]] name = "proc-macro2-diagnostics" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "606c4ba35817e2922a308af55ad51bab3645b59eae5c570d4a6cf07e36bd493b" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.65", "version_check", - "yansi 0.5.1", + "yansi", ] [[package]] name = "quote" -version = "1.0.26" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1269,51 +1329,52 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", ] [[package]] name = "ref-cast" -version = "1.0.16" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.16" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn 2.0.65", ] [[package]] name = "regex" -version = "1.7.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -1322,7 +1383,18 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.3", ] [[package]] @@ -1332,13 +1404,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "regex-syntax" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rental" @@ -1358,14 +1427,14 @@ checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "reqwest" -version = "0.11.12" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64", "bytes", @@ -1385,9 +1454,12 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", + "system-configuration", "tokio", "tokio-native-tls", "tower-service", @@ -1406,13 +1478,13 @@ checksum = "9e7bb57ccb26670d73b6a47396c83139447b9e7878cab627fdfe9ea8da489150" dependencies = [ "async-stream", "async-trait", - "atomic", + "atomic 0.5.3", "binascii", "bytes", "either", "figment", "futures", - "indexmap 2.1.0", + "indexmap 2.2.6", "log", "memchr", "multer", @@ -1432,7 +1504,7 @@ dependencies = [ "tokio-util", "ubyte", "version_check", - "yansi 1.0.0-rc.1", + "yansi", ] [[package]] @@ -1443,11 +1515,11 @@ checksum = "a2238066abf75f21be6cd7dc1a09d5414a671f4246e384e49fe3f8a4936bd04c" dependencies = [ "devise", "glob", - "indexmap 2.1.0", + "indexmap 2.2.6", "proc-macro2", "quote", "rocket_http", - "syn 2.0.10", + "syn 2.0.65", "unicode-xid", "version_check", ] @@ -1476,7 +1548,7 @@ dependencies = [ "futures", "http", "hyper", - "indexmap 2.1.0", + "indexmap 2.2.6", "log", "memchr", "pear", @@ -1495,12 +1567,18 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#ae0fe5cb83bbb24c9533c6829f2ca11667e8ab2d" +source = "git+https://github.com/rust-lang/team#41661195e980cfc9b5aa348acd86d7bf0ad0d932" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.6", "serde", ] +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -1509,28 +1587,37 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", ] [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -1565,12 +1652,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys 0.52.0", ] [[package]] @@ -1581,17 +1667,17 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[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 = "security-framework" -version = "2.7.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -1600,9 +1686,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -1610,41 +1696,59 @@ dependencies = [ [[package]] name = "self_cell" -version = "0.10.2" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d" +dependencies = [ + "self_cell 1.0.4", +] + +[[package]] +name = "self_cell" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af" +checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -1663,7 +1767,7 @@ version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ - "indexmap 1.9.1", + "indexmap 1.9.3", "ryu", "serde", "yaml-rust", @@ -1671,9 +1775,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -1682,58 +1786,58 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[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", ] [[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.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.7" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "spin" -version = "0.9.6" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5d6e0250b93c8427a177b849d144a96d5acc57006149479403d7861ab721e34" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "stable-pattern" @@ -1761,9 +1865,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -1772,65 +1876,94 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.10" +version = "2.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40" +checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tempfile" -version = "3.3.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "libc", - "redox_syscall 0.2.16", - "remove_dir_all", - "winapi", + "rustix", + "windows-sys 0.52.0", ] [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ + "cfg-if", "once_cell", ] [[package]] name = "time" -version = "0.3.20" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ + "deranged", "itoa", + "num-conv", + "powerfmt", "serde", "time-core", "time-macros", @@ -1838,16 +1971,17 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] @@ -1859,9 +1993,9 @@ checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" [[package]] name = "tinystr" -version = "0.7.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aeafdfd935e4a7fe16a91ab711fa52d54df84f9c8f7ca5837a9d1d902ef4c2" +checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece" dependencies = [ "displaydoc", ] @@ -1877,45 +2011,44 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.21.2" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", - "memchr", "mio", "num_cpus", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "tokio-native-tls" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", "tokio", @@ -1923,9 +2056,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.12" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -1934,25 +2067,58 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml" -version = "0.5.9" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" dependencies = [ + "indexmap 2.2.6", "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -1963,11 +2129,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[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", @@ -1975,20 +2140,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -1996,20 +2161,20 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -2025,9 +2190,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "type-map" @@ -2040,39 +2205,39 @@ dependencies = [ [[package]] name = "type-map" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46" +checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" dependencies = [ "rustc-hash", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ubyte" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c81f0dae7d286ad0d9366d7679a77934cfc3cf3a8d67e82669794412b2368fe6" +checksum = "f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea" dependencies = [ "serde", ] [[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 = "uncased" -version = "0.9.7" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622" +checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" dependencies = [ "serde", "version_check", @@ -2099,11 +2264,11 @@ dependencies = [ [[package]] name = "unic-langid" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f" +checksum = "23dd9d1e72a73b25e07123a80776aae3e7b0ec461ef94f9151eed6ec88005a44" dependencies = [ - "unic-langid-impl 0.9.1", + "unic-langid-impl 0.9.5", ] [[package]] @@ -2126,11 +2291,11 @@ dependencies = [ [[package]] name = "unic-langid-impl" -version = "0.9.1" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff" +checksum = "0a5422c1f65949306c99240b81de9f3f15929f5a8bfe05bb44b034cc8bf593e5" dependencies = [ - "tinystr 0.7.0", + "tinystr 0.7.5", ] [[package]] @@ -2153,27 +2318,27 @@ checksum = "e0098f77bd754f8fb7850cdf4ab143aa821898c4ac6dc16bcb2aa3e62ce858d1" dependencies = [ "proc-macro-hack", "quote", - "syn 1.0.103", + "syn 1.0.109", "unic-langid-impl 0.8.0", ] [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +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", ] @@ -2186,9 +2351,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "url" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -2215,9 +2380,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[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", @@ -2225,11 +2390,10 @@ dependencies = [ [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -2241,9 +2405,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2251,24 +2415,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -2278,9 +2442,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2288,28 +2452,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.103", + "syn 2.0.65", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -2333,11 +2497,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -2348,33 +2512,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.42.2", + "windows-targets 0.48.5", ] [[package]] @@ -2387,18 +2529,12 @@ dependencies = [ ] [[package]] -name = "windows-targets" -version = "0.42.2" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.52.5", ] [[package]] @@ -2417,10 +2553,20 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" +name = "windows-targets" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "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]] name = "windows_aarch64_gnullvm" @@ -2429,16 +2575,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" +name = "windows_aarch64_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -2447,16 +2587,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" +name = "windows_aarch64_msvc" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -2465,16 +2599,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] -name = "windows_i686_msvc" -version = "0.36.1" +name = "windows_i686_gnu" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" [[package]] -name = "windows_i686_msvc" -version = "0.42.2" +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -2483,60 +2617,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" +name = "windows_i686_msvc" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +name = "winnow" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +dependencies = [ + "memchr", +] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -2546,7 +2684,7 @@ dependencies = [ "fluent", "fluent-bundle 0.11.0", "fluent-locale", - "fluent-syntax 0.11.0", + "fluent-syntax 0.11.1", "handlebars", "handlebars-fluent", "lazy_static", @@ -2562,7 +2700,7 @@ dependencies = [ "serde_json", "serde_yaml", "siphasher", - "toml", + "toml 0.5.11", ] [[package]] @@ -2576,15 +2714,9 @@ dependencies = [ [[package]] name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "yansi" -version = "1.0.0-rc.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" dependencies = [ "is-terminal", ] diff --git a/src/teams.rs b/src/teams.rs index 5642499b..142334ba 100644 --- a/src/teams.rs +++ b/src/teams.rs @@ -347,10 +347,12 @@ mod tests { discord: None, zulip_stream: None, weight: 0, + matrix_room: None, }), roles: Vec::new(), github: None, discord: vec![], + top_level: None, } } From 0ac66182a780c2b712675315981e4b14c115e728 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 20 May 2024 19:47:36 +0200 Subject: [PATCH 08/29] Add redirect for /governance/teams --- src/redirect.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/redirect.rs b/src/redirect.rs index 80616713..eca98204 100644 --- a/src/redirect.rs +++ b/src/redirect.rs @@ -33,6 +33,8 @@ static PAGE_REDIRECTS: &[(&str, &str)] = &[ "governance/teams/crates-io", "governance/teams/dev-tools#team-crates-io", ), + // miscellaneous + ("governance/teams", "governance#teams"), ]; static STATIC_FILES_REDIRECTS: &[(&str, &str)] = &[ From 9d084227c46a4a3fd3341556c6375bac4d9a0f49 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 21 May 2024 01:27:58 +0200 Subject: [PATCH 09/29] Update js dependencies --- package-lock.json | 3667 +++++++++++++++++++++++++-------------------- package.json | 7 +- 2 files changed, 2040 insertions(+), 1634 deletions(-) diff --git a/package-lock.json b/package-lock.json index 21987496..9eddf7a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,156 +1,367 @@ { + "name": "www.rust-lang.org", + "lockfileVersion": 3, "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "packages": { + "": { + "devDependencies": { + "lighthouse": "^12.0.0", + "stylelint": "^16.5.0", + "stylelint-config-standard-scss": "^13.1.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.3.1" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", + "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", + "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", "dev": true, - "requires": { - "@babel/highlight": "^7.22.5" + "dependencies": { + "@formatjs/intl-localematcher": "0.5.4", + "tslib": "^2.4.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "node_modules/@formatjs/ecma402-abstract/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "dependencies": { + "tslib": "^2.4.0" } }, - "@csstools/css-parser-algorithms": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz", - "integrity": "sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA==", + "node_modules/@formatjs/fast-memoize/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "@csstools/css-tokenizer": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz", - "integrity": "sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==", + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", + "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/icu-skeleton-parser": "1.8.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "@csstools/media-query-list-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz", - "integrity": "sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ==", + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", + "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "dev": true, + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "@csstools/selector-specificity": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", - "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", + "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "@nodelib/fs.scandir": { + "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@nodelib/fs.stat": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "@nodelib/fs.walk": { + "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@puppeteer/browsers": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.3.tgz", - "integrity": "sha512-8Jfkpb8qhPQhMsNBmIY8b6+ic2kvcmHZlyvifmcNKBC5jNZf3MAKq3gryKfmrjFAYFl3naPjiKljPUq5wuolfQ==", + "node_modules/@paulirish/trace_engine": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.19.tgz", + "integrity": "sha512-3tjEzXBBtU83DkCJAdU2UwBBunspiwTCn+Y5jOxm592cfEuLr/T7Lcn+QhRerVqkSik2mnjN4X6NgHZjI9Biwg==", + "dev": true + }, + "node_modules/@puppeteer/browsers": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", + "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", "dev": true, - "requires": { + "dependencies": { "debug": "4.3.4", "extract-zip": "2.0.1", "progress": "2.0.3", - "proxy-agent": "6.2.1", - "tar-fs": "3.0.3", + "proxy-agent": "6.4.0", + "semver": "7.6.0", + "tar-fs": "3.0.5", "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - }, - "dependencies": { - "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - } + "yargs": "17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@sentry/core": { + "node_modules/@sentry/core": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", "dev": true, - "requires": { + "dependencies": { "@sentry/hub": "6.19.7", "@sentry/minimal": "6.19.7", "@sentry/types": "6.19.7", "@sentry/utils": "6.19.7", "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "@sentry/hub": { + "node_modules/@sentry/hub": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", "dev": true, - "requires": { + "dependencies": { "@sentry/types": "6.19.7", "@sentry/utils": "6.19.7", "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "@sentry/minimal": { + "node_modules/@sentry/minimal": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", "dev": true, - "requires": { + "dependencies": { "@sentry/hub": "6.19.7", "@sentry/types": "6.19.7", "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "@sentry/node": { + "node_modules/@sentry/node": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", "dev": true, - "requires": { + "dependencies": { "@sentry/core": "6.19.7", "@sentry/hub": "6.19.7", "@sentry/types": "6.19.7", @@ -159,2598 +370,2785 @@ "https-proxy-agent": "^5.0.0", "lru_map": "^0.3.3", "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "@sentry/types": { + "node_modules/@sentry/types": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "@sentry/utils": { + "node_modules/@sentry/utils": { "version": "6.19.7", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", "dev": true, - "requires": { + "dependencies": { "@sentry/types": "6.19.7", "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", "dev": true }, - "@types/node": { - "version": "20.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.0.tgz", - "integrity": "sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "optional": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { + "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "requires": { + "dependencies": { "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-colors": { + "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "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, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "argparse": { + "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "array-union": { + "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "ast-types": { + "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, - "requires": { + "dependencies": { "tslib": "^2.0.1" }, - "dependencies": { - "tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", - "dev": true - } + "engines": { + "node": ">=4" } }, - "astral-regex": { + "node_modules/ast-types/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/axe-core": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", + "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "axe-core": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", - "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, - "b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "balanced-match": { + "node_modules/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "dev": true, + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", + "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", + "dev": true, + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^1.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", + "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", + "dev": true, + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", + "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", + "dev": true, + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", + "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", + "dev": true, + "optional": true, + "dependencies": { + "streamx": "^2.16.1" + } }, - "base64-js": { + "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 - }, - "basic-ftp": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", - "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", - "dev": true + "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" + } + ] }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=10.0.0" } }, - "braces": { + "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, - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "buffer": { + "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, - "requires": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "chalk": { + "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, - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/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": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" } }, - "chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "node_modules/chrome-launcher": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.1.1.tgz", + "integrity": "sha512-OAQgBmpUzrIuShApIwOpjt7WFripGKcDMW/qeYU+kcl6jBPg87mRG+N2C3Vu+VeCVPqZ/ds3GfI2TK7tpz3Yyw==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" + "lighthouse-logger": "^2.0.1" }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" } }, - "chromium-bidi": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", - "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", + "node_modules/chromium-bidi": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", + "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", "dev": true, - "requires": { - "mitt": "3.0.0" + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.22.4" + }, + "peerDependencies": { + "devtools-protocol": "*" } }, - "cliui": { + "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "requires": { + "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "color-convert": { + "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, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "colord": { + "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "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 - }, - "configstore": { + "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, - "requires": { + "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" } }, - "cookie": { + "node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true - }, - "cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "engines": { + "node": ">= 0.6" } }, - "cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, - "requires": { - "node-fetch": "^2.6.12" + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "crypto-random-string": { + "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 + "dev": true, + "engines": { + "node": ">=8" + } }, - "csp_evaluator": { + "node_modules/csp_evaluator": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==", "dev": true }, - "css-functions-list": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", - "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", - "dev": true + "node_modules/css-functions-list": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", + "dev": true, + "engines": { + "node": ">=12 || >=16" + } }, - "css-tree": { + "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, - "requires": { + "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "cssesc": { + "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 + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "data-uri-to-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz", - "integrity": "sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==", - "dev": true + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "engines": { + "node": ">= 14" + } }, - "debug": { + "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, - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "define-lazy-prop": { + "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "degenerator": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-4.0.4.tgz", - "integrity": "sha512-MTZdZsuNxSBL92rsjx3VFWe57OpRlikyLbcx2B5Dmdv6oScqpMrvpY7zHLMymrUxo3U5+suPUMsNgW/+SZB1lg==", + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, - "requires": { + "dependencies": { "ast-types": "^0.13.4", - "escodegen": "^1.14.3", - "esprima": "^4.0.1", - "vm2": "^3.9.19" + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" } }, - "devtools-protocol": { - "version": "0.0.1155343", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz", - "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==", + "node_modules/devtools-protocol": { + "version": "0.0.1232444", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1232444.tgz", + "integrity": "sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==", "dev": true }, - "dir-glob": { + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "dot-prop": { + "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, - "requires": { + "dependencies": { "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "emoji-regex": { + "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 }, - "end-of-stream": { + "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, - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "engines": { + "node": ">=6" } }, - "error-ex": { + "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, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "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 + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, - "requires": { + "dependencies": { "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { "source-map": "~0.6.1" } }, - "esprima": { + "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 + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "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" + } }, - "esutils": { + "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 + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "extract-zip": { + "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", + "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "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 }, - "fast-fifo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", - "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==", + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "dev": true }, - "fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "requires": { + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastest-levenshtein": { + "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.9.1" + } }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "fd-slicer": { + "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, - "requires": { + "dependencies": { "pend": "~1.2.0" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, - "requires": { - "flat-cache": "^3.0.4" + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, - "fill-range": { + "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, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" } }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "get-caller-file": { + "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 + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-stream": { + "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, - "requires": { + "dependencies": { "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "get-uri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.1.tgz", - "integrity": "sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==", + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", "dev": true, - "requires": { + "dependencies": { "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^5.0.1", + "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4", - "fs-extra": "^8.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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" + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" } }, - "glob-parent": { + "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==", "dev": true, - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "global-modules": { + "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, - "requires": { + "dependencies": { "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "global-prefix": { + "node_modules/global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, - "requires": { + "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" + }, + "engines": { + "node": ">=6" } }, - "globby": { + "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "requires": { + "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "globjoin": { + "node_modules/globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, - "graceful-fs": { + "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "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-flag": { + "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 - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "engines": { + "node": ">=4" } }, - "html-tags": { + "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "http-link-header": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.1.tgz", - "integrity": "sha512-mW3N/rTYpCn99s1do0zx6nzFZSwLH9HGfUM4ZqLWJ16ylmYaC2v5eYGqrNTQlByx8AzUgGI+V/32gXPugs1+Sw==", - "dev": true + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } }, - "http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - } + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "https-proxy-agent": { + "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, - "requires": { + "dependencies": { "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "ieee754": { + "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 + "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" + } + ] }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } }, - "image-ssim": { + "node_modules/image-ssim": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", "dev": true }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "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 - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "engines": { + "node": ">=0.8.19" } }, - "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.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "intl-messageformat": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", - "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", + "node_modules/intl-messageformat": { + "version": "10.5.14", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", + "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", "dev": true, - "requires": { - "intl-messageformat-parser": "^1.8.1" + "dependencies": { + "@formatjs/ecma402-abstract": "2.0.0", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.8", + "tslib": "^2.4.0" } }, - "intl-messageformat-parser": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", - "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "node_modules/intl-messageformat/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { + "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "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 + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-glob": { + "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, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-number": { + "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 + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-obj": { + "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 - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-plain-object": { + "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-typedarray": { + "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, - "is-wsl": { + "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "requires": { + "dependencies": { "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "jpeg-js": { + "node_modules/jpeg-js": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", "dev": true }, - "js-library-detector": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.6.0.tgz", - "integrity": "sha512-z8OkDmXALZ22bIzBtIW8cpJ39MV93/Zu1rWrFdhsNw+sity2rOLaGT2kfWWQ6mnRTWs4ddONY5kiroA8e98Gvg==", - "dev": true + "node_modules/js-library-detector": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz", + "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==", + "dev": true, + "engines": { + "node": ">=12" + } }, - "js-tokens": { + "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 }, - "js-yaml": { + "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { + "dependencies": { "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "json-parse-even-better-errors": { + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "requires": { + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "kind-of": { + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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 - }, - "known-css-properties": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz", - "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "engines": { + "node": ">=0.10.0" } }, - "lighthouse": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.3.0.tgz", - "integrity": "sha512-YdTZJPjpiBNl9sPXxauA/jZqKEi6fjD0U11rm+2IBEtBYwovE/ULXiYK0N6q/KrNOIiTA4KQ1ssyCO8pZFFQ2A==", + "node_modules/known-css-properties": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz", + "integrity": "sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==", + "dev": true + }, + "node_modules/lighthouse": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.0.0.tgz", + "integrity": "sha512-8lZJ/D/fH/bQMyAmVUjts1IS0NOMa0SSbyce+OGQdKbaroVnontuVh9HsB9z/1ba3dEyBguOJiMkl6gkqyf7Tw==", "dev": true, - "requires": { + "dependencies": { + "@paulirish/trace_engine": "^0.0.19", "@sentry/node": "^6.17.4", - "axe-core": "4.7.2", - "chrome-launcher": "^0.15.2", + "axe-core": "^4.9.0", + "chrome-launcher": "^1.1.1", "configstore": "^5.0.1", "csp_evaluator": "1.1.1", - "devtools-protocol": "0.0.1155343", + "devtools-protocol": "0.0.1232444", "enquirer": "^2.3.6", "http-link-header": "^1.1.1", - "intl-messageformat": "^4.4.0", + "intl-messageformat": "^10.5.3", "jpeg-js": "^0.4.4", - "js-library-detector": "^6.6.0", - "lighthouse-logger": "^1.4.1", - "lighthouse-stack-packs": "1.10.0", + "js-library-detector": "^6.7.0", + "lighthouse-logger": "^2.0.1", + "lighthouse-stack-packs": "1.12.1", "lodash": "^4.17.21", "lookup-closest-locale": "6.2.0", "metaviewport-parser": "0.3.0", "open": "^8.4.0", "parse-cache-control": "1.0.1", "ps-list": "^8.0.0", - "puppeteer-core": "^20.7.1", - "robots-parser": "^3.0.0", + "puppeteer-core": "^22.6.5", + "robots-parser": "^3.0.1", "semver": "^5.3.0", "speedline-core": "^1.4.3", - "third-party-web": "^0.23.0", + "third-party-web": "^0.24.2", + "tldts-icann": "^6.1.16", "ws": "^7.0.0", "yargs": "^17.3.1", "yargs-parser": "^21.0.0" }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } + "bin": { + "chrome-debug": "core/scripts/manual-chrome-launcher.js", + "lighthouse": "cli/index.js", + "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js" + }, + "engines": { + "node": ">=18.16" } }, - "lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "node_modules/lighthouse-logger": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.1.tgz", + "integrity": "sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==", "dev": true, - "requires": { + "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" - }, + } + }, + "node_modules/lighthouse-logger/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": { - "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } + "ms": "2.0.0" } }, - "lighthouse-stack-packs": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.10.0.tgz", - "integrity": "sha512-5nvJS+IkZUbnDpIeJLi1xdnCfftBFMkxXfA5HHlEC1EQFQ2a8YPos6vl11oERHuIlDFEnVkaOeNaSIrL2K/9Gg==", + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/lighthouse-stack-packs": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.1.tgz", + "integrity": "sha512-i4jTmg7tvZQFwNFiwB+nCK6a7ICR68Xcwo+VIVd6Spi71vBNFUlds5HiDrSbClZdkQDON2Bhqv+KKJIo5zkPeA==", "dev": true }, - "lines-and-columns": { + "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.truncate": { + "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "lookup-closest-locale": { + "node_modules/lookup-closest-locale": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", "dev": true }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "lru_map": { + "node_modules/lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", "dev": true }, - "make-dir": { + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "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, - "requires": { + "dependencies": { "semver": "^6.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, - "marky": { + "node_modules/marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "dev": true }, - "mathml-tag-names": { + "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "mdn-data": { + "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, - "meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "dependencies": { - "decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "merge2": { + "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 + "dev": true, + "engines": { + "node": ">= 8" + } }, - "metaviewport-parser": { + "node_modules/metaviewport-parser": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz", "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==", "dev": true }, - "micromatch": { + "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, - "requires": { + "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "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-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", - "dev": true - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "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 }, - "ms": { + "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 }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": 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" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "netmask": { + "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true - }, - "node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dev": true, - "requires": { - "whatwg-url": "^5.0.0" + "engines": { + "node": ">= 0.4.0" } }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "normalize-path": { + "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 + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "open": { + "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, - "requires": { + "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, - "requires": { - "yocto-queue": "^0.1.0" + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" } }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, - "requires": { - "p-limit": "^3.0.2" + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "pac-proxy-agent": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-6.0.3.tgz", - "integrity": "sha512-5Hr1KgPDoc21Vn3rsXBirwwDnF/iac1jN/zkpsOYruyT+ZgsUhUOgVwq3v9+ukjZd/yGm/0nzO1fDfl7rkGoHQ==", + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "pac-resolver": "^6.0.1", - "socks-proxy-agent": "^8.0.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz", - "integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==", - "dev": true, - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - } + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "pac-resolver": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-6.0.2.tgz", - "integrity": "sha512-EQpuJ2ifOjpZY5sg1Q1ZeAxvtLwR7Mj3RgY8cysPGbsRu3RBXyJFWxnMus9PScjxya/0LzvVDxNh/gl0eXBU4w==", + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, - "requires": { - "degenerator": "^4.0.4", - "ip": "^1.1.8", + "dependencies": { + "degenerator": "^5.0.0", "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" } }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-cache-control": { + "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true }, - "parse-json": { + "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "pend": { + "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "postcss": { - "version": "8.4.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", - "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, - "requires": { - "nanoid": "^3.3.6", + "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" + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "postcss-media-query-parser": { + "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, - "postcss-resolve-nested-selector": { + "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", "dev": true }, - "postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true + "node_modules/postcss-safe-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", + "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } }, - "postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "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 }, - "progress": { + "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.2.1.tgz", - "integrity": "sha512-OIbBKlRAT+ycCm6wAYIzMwPejzRtjy8F3QiDX0eKOA3e4pe3U9F/IvzcHP42bmgQxVv97juG+J8/gx+JIeCX/Q==", + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", "dev": true, - "requires": { + "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", "lru-cache": "^7.14.1", - "pac-proxy-agent": "^6.0.3", + "pac-proxy-agent": "^7.0.1", "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.2" }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.0.tgz", - "integrity": "sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==", - "dev": true, - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - } + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "ps-list": { + "node_modules/ps-list": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz", "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==", - "dev": true + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "pump": { + "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, - "requires": { + "dependencies": { "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 + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "puppeteer-core": { - "version": "20.8.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.8.0.tgz", - "integrity": "sha512-sQcuH6nv9jnFiaaePk53+C0O9BaJP6OaPmYKqJ3sWhziThv6uaaosK49Kg3g1HUUEP9KYhbOhedPIUCXJSQUxw==", + "node_modules/puppeteer-core": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.9.0.tgz", + "integrity": "sha512-Q2SYVZ1SIE7jCd/Pp+1/mNLFtdJfGvAF+CqOTDG8HcCNCiBvoXfopXfOfMHQ/FueXhGfJW/I6DartWv6QzpNGg==", "dev": true, - "requires": { - "@puppeteer/browsers": "1.4.3", - "chromium-bidi": "0.4.16", - "cross-fetch": "4.0.0", + "dependencies": { + "@puppeteer/browsers": "2.2.3", + "chromium-bidi": "0.5.19", "debug": "4.3.4", - "devtools-protocol": "0.0.1135028", - "ws": "8.13.0" + "devtools-protocol": "0.0.1286932", + "ws": "8.17.0" }, - "dependencies": { - "devtools-protocol": { - "version": "0.0.1135028", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1135028.tgz", - "integrity": "sha512-jEcNGrh6lOXNRJvZb9RjeevtZGrgugPKSMJZxfyxWQnhlKawMPhMtk/dfC+Z/6xNXExlzTKlY5LzIAK/fRpQIw==", - "dev": true + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1286932", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1286932.tgz", + "integrity": "sha512-wu58HMQll9voDjR4NlPyoDEw1syfzaBNHymMMZ/QOXiHRNluOnDgu9hp1yHOKYoMlxCh4lSSiugLITe6Fvu1eA==", + "dev": true + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true + "utf-8-validate": { + "optional": true } } }, - "queue-microtask": { + "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "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" + } + ] }, - "queue-tick": { + "node_modules/queue-tick": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", "dev": true }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - } - }, - "read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "requires": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - } - }, - "redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "requires": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - } - }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "robots-parser": { + "node_modules/robots-parser": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.0.0" + } }, - "run-parallel": { + "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "queue-microtask": "^1.2.2" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } }, - "signal-exit": { + "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "slice-ansi": { + "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/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": { - "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" - } - }, - "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 - }, - "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 - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "smart-buffer": { + "node_modules/slice-ansi/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/slice-ansi/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/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, - "requires": { - "ip": "^2.0.0", + "dependencies": { + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, - "dependencies": { - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - } + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "socks-proxy-agent": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.1.tgz", - "integrity": "sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ==", + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", "dev": true, - "requires": { - "agent-base": "^7.0.1", + "dependencies": { + "agent-base": "^7.1.1", "debug": "^4.3.4", "socks": "^2.7.1" }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "requires": { - "debug": "^4.3.4" - } - } + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "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, - "optional": true - }, - "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 - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/source-map-js": { + "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, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=0.10.0" } }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "speedline-core": { + "node_modules/speedline-core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "image-ssim": "^0.2.0", "jpeg-js": "^0.4.1" + }, + "engines": { + "node": ">=8.0" } }, - "streamx": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.0.tgz", - "integrity": "sha512-HcxY6ncGjjklGs1xsP1aR71INYcsXFJet5CU1CHqihQ2J5nOsbd4OjgjHO42w/4QNv9gZb3BueV+Vxok5pLEXg==", + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dev": true, - "requires": { + "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, - "string-width": { + "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "dev": true, - "requires": { - "min-indent": "^1.0.1" - } - }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true - }, - "stylelint": { - "version": "15.10.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz", - "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==", + "node_modules/stylelint": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.5.0.tgz", + "integrity": "sha512-IlCBtVrG+qTy3v+tZTk50W8BIomjY/RUuzdrDqdnlCYwVuzXtPbiGfxYqtyYAyOMcb+195zRsuHn6tgfPmFfbw==", "dev": true, - "requires": { - "@csstools/css-parser-algorithms": "^2.3.0", - "@csstools/css-tokenizer": "^2.1.1", - "@csstools/media-query-list-parser": "^2.1.2", - "@csstools/selector-specificity": "^3.0.0", + "dependencies": { + "@csstools/css-parser-algorithms": "^2.6.1", + "@csstools/css-tokenizer": "^2.2.4", + "@csstools/media-query-list-parser": "^2.1.9", + "@csstools/selector-specificity": "^3.0.3", + "@dual-bundle/import-meta-resolve": "^4.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^8.2.0", - "css-functions-list": "^3.1.0", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.2", "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.2.4", - "import-lazy": "^4.0.0", + "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.27.0", + "known-css-properties": "^0.30.0", "mathml-tag-names": "^2.1.3", - "meow": "^10.1.5", + "meow": "^13.2.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.24", + "postcss": "^8.4.38", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.13", + "postcss-safe-parser": "^7.0.0", + "postcss-selector-parser": "^6.0.16", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", + "strip-ansi": "^7.1.0", "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", - "table": "^6.8.1", + "table": "^6.8.2", "write-file-atomic": "^5.0.1" }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz", + "integrity": "sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz", + "integrity": "sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "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 - }, - "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 - }, - "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 - }, - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - } + "postcss-scss": "^4.0.9", + "stylelint-config-recommended": "^14.0.0", + "stylelint-scss": "^6.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.0.2" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true } } }, - "stylelint-config-recommended": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", - "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", - "dev": true + "node_modules/stylelint-config-standard": { + "version": "36.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz", + "integrity": "sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^14.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.1.0" + } }, - "stylelint-config-recommended-scss": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-4.1.0.tgz", - "integrity": "sha512-4012ca0weVi92epm3RRBRZcRJIyl5vJjJ/tJAKng+Qat5+cnmuCwyOI2vXkKdjNfGd0gvzyKCKEkvTMDcbtd7Q==", + "node_modules/stylelint-config-standard-scss": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.1.0.tgz", + "integrity": "sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA==", "dev": true, - "requires": { - "stylelint-config-recommended": "^3.0.0" + "dependencies": { + "stylelint-config-recommended-scss": "^14.0.0", + "stylelint-config-standard": "^36.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^16.3.1" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "stylelint-scss": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.14.0.tgz", - "integrity": "sha512-59tZ/vfSEJxZX1N+B96xBcmhDwCUimeuZ9kp08R7WRqUUKRJ+INilfOmIqCzHZpEY/tZDKt+grOYCxffSs49fA==", + "node_modules/stylelint-scss": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.3.0.tgz", + "integrity": "sha512-8OSpiuf1xC7f8kllJsBOFAOYp/mR/C1FXMVeOFjtJPw+AFvEmC93FaklHt7MlOqU4poxuQ1TkYMyfI0V+1SxjA==", "dev": true, - "requires": { - "lodash": "^4.17.15", + "dependencies": { + "known-css-properties": "^0.30.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } + "postcss-selector-parser": "^6.0.15", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.0.2" } }, - "supports-color": { + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "supports-hyperlinks": { + "node_modules/supports-hyperlinks": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/supports-hyperlinks/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/supports-hyperlinks/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": { - "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" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "svg-tags": { + "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, - "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, - "requires": { + "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "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 - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } + "engines": { + "node": ">=10.0.0" } }, - "tar-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.3.tgz", - "integrity": "sha512-ZK36riGYnFI6LujIBfBRoDfeaaWUkStIFKwtPjnDWCKnsDE9kuQthG09aQjLjpzoRtVElEMZ/AIAURNb7N9mkA==", + "node_modules/tar-fs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", "dev": true, - "requires": { - "mkdirp-classic": "^0.5.2", + "dependencies": { "pump": "^3.0.0", - "tar-stream": "^3.1.0" + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, - "tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, - "requires": { + "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, - "third-party-web": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.3.tgz", - "integrity": "sha512-ifZcy79XYPmt9kQSTaHVh3IaL3Pms60iumsBrBBm6PPrtlNGdj56wznKl1LgSw8KpMWOwqOrlI/WCasQjflIZA==", + "node_modules/third-party-web": { + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.24.3.tgz", + "integrity": "sha512-imE6hXZyaCeGinGFCvpWsv0oelsEaufSG39qYBQhp3urGq4OLOtsuEddf3XgKxmAAczBD/I1Tnp8L3gJ3ksTuQ==", "dev": true }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "to-regex-range": { + "node_modules/tldts-core": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.20.tgz", + "integrity": "sha512-VTEzsx7kVbLDgWaACW0atZ7Q0KzbJveYvR6IxvirIhV4Z4GGGqLVCCj9PvF0KW3h0PbJcw0JJnpr0YueHg0ueA==", + "dev": true + }, + "node_modules/tldts-icann": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-6.1.20.tgz", + "integrity": "sha512-dv1hEGvfDa9mh7/fPRxllNO0b/5kPyo3BVCxjsLQz/LcTg3xlJHkIHcmSfQ7FbcfUt2Sb+iLZfYhs6VMCePRHA==", + "dev": true, + "dependencies": { + "tldts-core": "^6.1.20" + } + }, + "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, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "trim-newlines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", - "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", - "dev": true - }, - "tslib": { + "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - }, - "typedarray-to-buffer": { + "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, - "requires": { + "dependencies": { "is-typedarray": "^1.0.0" } }, - "unbzip2-stream": { + "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, - "requires": { + "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "unique-string": { + "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, - "requires": { + "dependencies": { "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "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 + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "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, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "util-deprecate": { + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true + }, + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vm2": { - "version": "3.9.19", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.19.tgz", - "integrity": "sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==", - "dev": true, - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true - }, - "wrap-ansi": { + "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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": { - "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" - } - }, - "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 - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "wrappy": { + "node_modules/wrap-ansi/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/wrap-ansi/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/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "write-file-atomic": { + "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, - "requires": { + "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, - "ws": { + "node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xdg-basedir": { + "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 + "dev": true, + "engines": { + "node": ">=8" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yargs": { + "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { + "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -2758,29 +3156,38 @@ "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true + "dev": true, + "engines": { + "node": ">=12" + } }, - "yauzl": { + "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, - "requires": { + "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index 5a8fbaf6..01579c6d 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,8 @@ "extends": "stylelint-config-recommended-scss" }, "devDependencies": { - "lighthouse": "^10.3.0", - "stylelint": "^15.10.1", - "stylelint-config-recommended-scss": "^4.1.0", - "stylelint-scss": "^3.14.0" + "lighthouse": "^12.0.0", + "stylelint": "^16.5.0", + "stylelint-config-standard-scss": "^13.1.0" } } From bee7f210904e57604859f4c0ab1116adb933ca80 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 21 May 2024 10:17:17 +0200 Subject: [PATCH 10/29] Add note about unmaintained translations --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index f319d85e..6ba5f064 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,11 @@ * [**View Staging (master)**](http://www-staging.rust-lang.org) +> [!NOTE] +> There are currently no reviewers for the translations available. +> If you have a suggestion to improve the translations, you may still open an issue for future reference. +> However, it likely won't be acted upon for the time being. + ## Development ### Running the app locally From 8135a9c80463f3a5570d0918c6d8b1fdc015488c Mon Sep 17 00:00:00 2001 From: Nikolajus Krauklis Date: Tue, 21 May 2024 11:36:23 +0200 Subject: [PATCH 11/29] Fixes #1298 - closing divs --- templates/governance/group-team.html.hbs | 2 +- templates/governance/index.html.hbs | 1 + templates/policies/licenses.html.hbs | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/governance/group-team.html.hbs b/templates/governance/group-team.html.hbs index 9cdebb26..529cf0b2 100644 --- a/templates/governance/group-team.html.hbs +++ b/templates/governance/group-team.html.hbs @@ -85,7 +85,7 @@ {{#each team.alumni as |member|}}
- + {{member.name}}
{{member.name}} diff --git a/templates/governance/index.html.hbs b/templates/governance/index.html.hbs index 24917713..ac5919fa 100644 --- a/templates/governance/index.html.hbs +++ b/templates/governance/index.html.hbs @@ -20,6 +20,7 @@ {{fluent "learn-more"}}
+
diff --git a/templates/policies/licenses.html.hbs b/templates/policies/licenses.html.hbs index a6e16cb8..b0a53d18 100644 --- a/templates/policies/licenses.html.hbs +++ b/templates/policies/licenses.html.hbs @@ -41,6 +41,7 @@

{{fluent "licenses-attribution-description"}}

+
{{/inline}} From 751faf72b5b7883f745cb820252ad5c054ef96ae Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 21 May 2024 18:16:40 +0200 Subject: [PATCH 12/29] Tweak style of horizontal rules --- locales/en-US/learn.ftl | 2 +- locales/es/learn.ftl | 2 +- locales/fr/learn.ftl | 2 +- locales/it/learn.ftl | 2 +- locales/ja/learn.ftl | 2 +- locales/pl/learn.ftl | 2 +- locales/pt-BR/learn.ftl | 2 +- locales/ru/learn.ftl | 2 +- locales/tr/learn.ftl | 2 +- locales/zh-CN/learn.ftl | 2 +- locales/zh-TW/learn.ftl | 2 +- src/styles/app.scss | 7 +++++++ templates/components/what/embedded/get-started.html.hbs | 3 +-- templates/learn/get-started.html.hbs | 6 +++--- 14 files changed, 22 insertions(+), 16 deletions(-) diff --git a/locales/en-US/learn.ftl b/locales/en-US/learn.ftl index 6f36970c..0d86e903 100644 --- a/locales/en-US/learn.ftl +++ b/locales/en-US/learn.ftl @@ -108,7 +108,7 @@ learn-generating-steps =

Let’s write a small application with our new Rust { $tree }

Cargo.toml is the manifest file for Rust. It’s where you keep metadata for your project, as well as dependencies.

src/main.rs is where we’ll write our application code.

-
+

The cargo new step generated a "Hello, world!" project for us! We can run this program by moving into the new directory that we made and running this in our terminal:

cargo run

You should see this in your terminal:

diff --git a/locales/es/learn.ftl b/locales/es/learn.ftl index db878efd..b723aa07 100644 --- a/locales/es/learn.ftl +++ b/locales/es/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml es el archivo de manifiesto de Rust. Es donde mantenemos los metadatos del proyecto, así como la declaración de dependencias.

src/main.rs es donde escribimos el código de nuestra aplicación.

-
+

cargo new genera un proyecto de "Hello, world" para nosotros. Podemos ejecutar el programa si nos movemos al nuevo directorio recién creado ejecutando en tu terminal:

cargo run

Deberías ver esto en tu terminal:

diff --git a/locales/fr/learn.ftl b/locales/fr/learn.ftl index 87a4744a..b6ed126a 100644 --- a/locales/fr/learn.ftl +++ b/locales/fr/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml est le fichier manifeste de Rust. C'est là que vous gardez les métadonnées pour votre projet, ainsi que les dépendances.

src/main.rs est l'endroit où vous écrirez le code de notre application.

-
+

cargo new génère pour nous un projet "Hello, world!". Nous pouvons exécuter ce programme en nous déplaçant dans le nouveau répertoire que nous avons créé et en exécutant ceci dans notre terminal :

cargo run

Vous devriez voir ceci dans votre terminal :

diff --git a/locales/it/learn.ftl b/locales/it/learn.ftl index 434b8ed0..e832b826 100644 --- a/locales/it/learn.ftl +++ b/locales/it/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml è il manifest per i progetti Rust. Contiene i metadati, così come l'elenco delle dipendenze.

src/main.rs il file che conterrà il codice della nostra applicazione.

-
+

cargo new crea un progetto del tipo "Hello, world!"! Possiamo eseguire questo programma scendendo nella directory che abbiamo appena creato e poi lanciare:

cargo run

Questo l'output che dovrebbe apparire sulla console:

diff --git a/locales/ja/learn.ftl b/locales/ja/learn.ftl index ea4807e7..567889f4 100644 --- a/locales/ja/learn.ftl +++ b/locales/ja/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.tomlはRust用のマニフェストファイルです。プロジェクトのメタデータに加え依存関係も記録されます。

src/main.rsがアプリケーションのコードを書く場所です。

-
+

cargo newは「Hello, world!」プロジェクトを生成します!ターミナルで作成した新しいディレクトリに移動し、以下を実行することでこのプログラムを実行できます:

cargo run

以下の出力が得られるはずです:

diff --git a/locales/pl/learn.ftl b/locales/pl/learn.ftl index 5c429c95..b9052ffa 100644 --- a/locales/pl/learn.ftl +++ b/locales/pl/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml to plik manifestowy projektu Rust. Jest to miejsce, w którym trzymane są metadane dotyczące naszego projektu oraz jego zależności w postaci rozmaitych bibliotek kodu.

src/main.rs to plik, w którym będziemy pisać nasz program.

-
+

cargo new tworzy dla nas domyślny projekt "Hello, world!". Możemy uruchomić tak powstałą aplikację, wchodząc w katalog projektu i uruchamiając następujące polecenie:

cargo run

Na ekranie powinniśmy zobaczyć:

diff --git a/locales/pt-BR/learn.ftl b/locales/pt-BR/learn.ftl index c56da552..5cbf0e5f 100644 --- a/locales/pt-BR/learn.ftl +++ b/locales/pt-BR/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml é o manifesto de um projeto Rust. Aqui você encontra todos os metadados do projeto, assim como as declarações de dependência.

src/main.rs é onde nos vamos escrever nossa aplicação.

-
+

cargo new gera um projeto "Hello, world!" para você! Você pode executar esse programa entrando no diretório recém criado e executando o seguinte no seu terminal:

cargo run

Você deveria ver a seguinte saída no terminal:

diff --git a/locales/ru/learn.ftl b/locales/ru/learn.ftl index 4f4be830..29e93bab 100644 --- a/locales/ru/learn.ftl +++ b/locales/ru/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml - это файл манифеста. Здесь хранятся метаданные вашего проекта, такие как описание.

В файле src/main.rs вы пишете код приложения.

-
+

cargo new создал для нас проект "Hello, world!". Для запуска этой программы мы перейдём в директорию, которая была создана, и запустим в терминале:

cargo run

Вы должны увидеть следующее:

diff --git a/locales/tr/learn.ftl b/locales/tr/learn.ftl index 8f4f9fca..09820898 100644 --- a/locales/tr/learn.ftl +++ b/locales/tr/learn.ftl @@ -80,7 +80,7 @@ learn-generating-steps = { $tree }

Cargo.toml, Rust için manifesto dosyasıdır. Burası projenizin metaverisini sakladığınız yer olmakla birlikte, bağımlılıkların da belirtildiği yerdir.

Uygulama kodunuzun bulunduğu yer ise src/main.rs'dir.

-
+

cargo new, bizim için yeni bir "Merhaba, dünya!" projesi oluşturur! Bu programı yeni bir dizine taşıyıp, aşağıdaki kodla uçbirimimizde çalıştırabiliriz:

cargo run

Uçbiriminizde şu çıktıyı almanız gerekmektedir:

diff --git a/locales/zh-CN/learn.ftl b/locales/zh-CN/learn.ftl index 45e40f48..30376d97 100644 --- a/locales/zh-CN/learn.ftl +++ b/locales/zh-CN/learn.ftl @@ -87,7 +87,7 @@ learn-generating-steps = { $tree }

Cargo.toml 为 Rust 的清单文件。其中包含了项目的元数据和依赖库。

src/main.rs 为编写应用代码的地方。

-
+

cargo new 会生成一个新的“Hello, world!”项目!我们可以进入新创建的目录中,执行下面的命令来运行此程序:

cargo run

您应该会在终端中看到如下内容:

diff --git a/locales/zh-TW/learn.ftl b/locales/zh-TW/learn.ftl index 9dd3bb8d..4f2da3cb 100644 --- a/locales/zh-TW/learn.ftl +++ b/locales/zh-TW/learn.ftl @@ -83,7 +83,7 @@ learn-generating-steps = { $tree }

Cargo.toml 是 Rust 的 manifest 檔案,它是保存專案 metadata 與相依套件資訊的地方。

src/main.rs 是我們要編寫程式碼的地方。

-
+

cargo new 會為我們產生一個「Hello, world!」的專案!我們可以移動到這個新的目錄並在我們的終端機上執行:

cargo run

您應該會在終端機上看到以下訊息:

diff --git a/src/styles/app.scss b/src/styles/app.scss index 78b6e806..6575850a 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -558,6 +558,13 @@ blockquote::before { width: 80%; } +.get-started-hr { + background-color: white; + height: 1px; + border: 0px; + margin: 25px 0px; +} + .hidden { border: 0; clip: rect(0 0 0 0); diff --git a/templates/components/what/embedded/get-started.html.hbs b/templates/components/what/embedded/get-started.html.hbs index ff6ba0e1..747681cd 100644 --- a/templates/components/what/embedded/get-started.html.hbs +++ b/templates/components/what/embedded/get-started.html.hbs @@ -45,8 +45,7 @@ -
-
+

{{fluent "embedded-get-started-more-documentation-link"}} diff --git a/templates/learn/get-started.html.hbs b/templates/learn/get-started.html.hbs index 6ea8a11e..f24678f9 100644 --- a/templates/learn/get-started.html.hbs +++ b/templates/learn/get-started.html.hbs @@ -15,7 +15,7 @@

{{fluent "learn-play"}}

{{fluent "learn-play-button"}} -
+

{{fluent "learn-install-rustup-header"}}

{{fluent "learn-install-rustup"}}

@@ -25,12 +25,12 @@

{{#fluent "learn-install-rustup-update"}}{{#fluentparam "update-command"}}rustup update{{/fluentparam}}{{/fluent}}


{{fluent "learn-install-rustup-button"}} -
+

{{fluent "learn-install-cargo-header"}}

{{fluent "learn-install-cargo"}} {{fluent "learn-install-cargo-button"}} -
+

{{fluent "learn-install-other"}}

{{fluent "learn-install-editors"}}

From 7a3ebc3d09eb60c70bd9440521b57fcbb859a3bf Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 22 May 2024 16:05:47 +0200 Subject: [PATCH 13/29] Add dependabot config --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..41018651 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 + +updates: + - package-ecosystem: cargo + directory: "/" + schedule: + interval: weekly + groups: + all: + patterns: + - "*" From df9816b5a1e9dec2c01b52a1fe4ff91179858948 Mon Sep 17 00:00:00 2001 From: etienne-k <2804556+etienne-k@users.noreply.github.com> Date: Tue, 19 Jul 2022 22:49:34 +0200 Subject: [PATCH 14/29] feat(tools): Link to the rust-analyzer instructions for Helix instead --- templates/components/tools/editors.html.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/components/tools/editors.html.hbs b/templates/components/tools/editors.html.hbs index dac0a0b7..dcb73f87 100644 --- a/templates/components/tools/editors.html.hbs +++ b/templates/components/tools/editors.html.hbs @@ -16,7 +16,7 @@ class="button button-secondary">{{fluent "tools-editor-eclipse"}}
From f74d610c0ad3db5c78fae050939225b27d236111 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 May 2024 03:28:00 +0200 Subject: [PATCH 15/29] Sort editors according to popularity --- templates/components/tools/editors.html.hbs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/templates/components/tools/editors.html.hbs b/templates/components/tools/editors.html.hbs index dcb73f87..e957ec1b 100644 --- a/templates/components/tools/editors.html.hbs +++ b/templates/components/tools/editors.html.hbs @@ -4,31 +4,31 @@ class="button button-secondary">{{fluent "tools-editor-vscode"}}
- - + +
From 3eb4bed56b4583f7f085ee33ddfc6bebcdbf1a42 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 May 2024 19:14:26 +0200 Subject: [PATCH 16/29] Remove Rustbridge section The program seems to have been phased out: - The repo was archived in 2019. - The discord channel is gone. - The book is still online, but it has little relevant information and many dead links: https://rustbridge.github.io/book/ --- locales/de/community.ftl | 3 --- locales/en-US/community.ftl | 10 --------- locales/en-US/teams.ftl | 3 --- locales/es/community.ftl | 7 ------- locales/es/teams.ftl | 3 --- locales/fa/community.ftl | 3 --- locales/fr/community.ftl | 7 ------- locales/fr/teams.ftl | 3 --- locales/it/community.ftl | 7 ------- locales/it/teams.ftl | 3 --- locales/ja/community.ftl | 7 ------- locales/ja/teams.ftl | 3 --- locales/ko/community.ftl | 3 --- locales/ko/teams.ftl | 1 - locales/pl/community.ftl | 7 ------- locales/pl/teams.ftl | 2 -- locales/pt-BR/community.ftl | 7 ------- locales/pt-BR/teams.ftl | 3 --- locales/ru/community.ftl | 7 ------- locales/ru/teams.ftl | 3 --- locales/tr/community.ftl | 7 ------- locales/tr/teams.ftl | 3 --- locales/xx-AU/teams.ftl | 2 -- locales/zh-CN/community.ftl | 7 ------- locales/zh-CN/teams.ftl | 3 --- locales/zh-TW/community.ftl | 7 ------- locales/zh-TW/teams.ftl | 3 --- static/images/rustbridge-berlin.jpg | Bin 51063 -> 0 bytes static/images/rustbridge-paris.jpg | Bin 41414 -> 0 bytes static/images/rustbridge-rbr.jpg | Bin 36194 -> 0 bytes static/images/rustbridge-rustconf.jpg | Bin 44392 -> 0 bytes static/images/rustbridge.jpg | Bin 38506 -> 0 bytes templates/community/index.html.hbs | 28 -------------------------- 33 files changed, 152 deletions(-) delete mode 100644 static/images/rustbridge-berlin.jpg delete mode 100644 static/images/rustbridge-paris.jpg delete mode 100644 static/images/rustbridge-rbr.jpg delete mode 100644 static/images/rustbridge-rustconf.jpg delete mode 100644 static/images/rustbridge.jpg diff --git a/locales/de/community.ftl b/locales/de/community.ftl index 78e9f957..d4f39f0f 100644 --- a/locales/de/community.ftl +++ b/locales/de/community.ftl @@ -15,9 +15,6 @@ community-conference-lineup = Zum Programm für 2020 community-event-run-header = Stelle dein eigenes Event auf die Beine community-event-register = Trage dein Event ein community-rustfest-alt = Rustfest Teilnehmer -community-rustbridge-header = RustBridge -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlin community-irr-header = Rusts Reichweite vergrößern community-irr-button = Besuche die Webseite community-standards-header = Community-Richtlinien diff --git a/locales/en-US/community.ftl b/locales/en-US/community.ftl index bf9883ad..ed69665d 100644 --- a/locales/en-US/community.ftl +++ b/locales/en-US/community.ftl @@ -53,16 +53,6 @@ community-events-repo = Check out the events team repo community-event-register = Register your event community-rustfest-alt = Rustfest participants -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge is a workshop focused on getting underrepresented people with a background in another programming language to learn Rust and join the community. -community-rustbridge-button = Check out the Rustbridge repo - -community-rustbridge-rustconf-alt = RustBridge at RustConf -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlin -community-rustbridge-rbr-alt = RustBridge at Rust Belt Rust - - community-irr-header = Increasing Rust’s Reach community-irr = Increasing Rust’s Reach is a program that matches Rust team members from all parts of the project with individuals who are underrepresented in Rust’s community and the tech industry for a partnership of three (3) months, from mid-May to mid-August. Each partnership agrees to a commitment of 3–5 hours per week working on a Rust Project. community-irr-button = Visit Website diff --git a/locales/en-US/teams.ftl b/locales/en-US/teams.ftl index 8fa2a8cb..ed1f20ad 100644 --- a/locales/en-US/teams.ftl +++ b/locales/en-US/teams.ftl @@ -20,9 +20,6 @@ governance-team-community-events-description = Supporting and organizing communi governance-team-community-localization-name = Localization team governance-team-community-localization-description = Working on localization of compiler, documentation and websites -governance-team-community-rustbridge-name = RustBridge team -governance-team-community-rustbridge-description = Helping to bring underrepresented groups into Rust - governance-team-community-survey-name = Survey team governance-team-community-survey-description = Running, analysing, and presenting the community survey diff --git a/locales/es/community.ftl b/locales/es/community.ftl index 45b5daec..5f493aaf 100644 --- a/locales/es/community.ftl +++ b/locales/es/community.ftl @@ -49,13 +49,6 @@ community-event-run = community-events-repo = Consultar el repositorio del equipo de Eventos community-event-register = Registra tu evento community-rustfest-alt = Participantes de Rustfest -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge es un taller que pone el foco en atraer a grupos de gente poco representados con experiencia en otros lenguajes de programación para que aprendan Rust y se unan a su comunidad. -community-rustbridge-button = Consulta el repositorio de RustBridge -community-rustbridge-rustconf-alt = RustBridge en la Rustconf -community-rustbridge-paris-alt = RustBridge París -community-rustbridge-berlin-alt = RustBridge Berlín -community-rustbridge-rbr-alt = RustBridge en Rust Belt Rust community-irr-header = Increasing Rust's Reach community-irr = Increasing Rust's Reach (Aumentando el alcance de Rust) es un programa que une a miembros de todas las áreas del equipo de Rust con individuos que están poco representados en la comunidad Rust y la industria tecnológica, para una colaboración de tres (3) meses, desde mediados de Mayo hasta mediados de Agosto. Cada miembro asociado se compromete a trabajar en un proyecto de Rust de 3 a 5 horas por semana. community-irr-button = Visita la web diff --git a/locales/es/teams.ftl b/locales/es/teams.ftl index 445fafe0..53fb7d1e 100644 --- a/locales/es/teams.ftl +++ b/locales/es/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = Grupo de trabajo de desarrollo de juegos governance-team-wg-gamedev-description = Concentrados en hacer de Rust la elección por defecto para desarrollo de videojuegos governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = Colaborar con el desarrollo de LLVM para representar a Rust -governance-team-community-rustbridge-name = Equipo de RustBridge -governance-team-community-rustbridge-description = Una iniciativa educacional inclusiva con el objetivo de atraer a minorías infrarrepresentadas a Rust. governance-team-wg-grammar-name = Gramática governance-team-wg-grammar-description = Especificar la gramática formal y oficial de Rust y validar las implementaciones ya existentes. governance-team-lang-name = Equipo del lenguaje @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = Crear optimizaciones en la MIR y refact governance-team-rust-by-example-name = Equipo de Rust by Example governance-team-rust-by-example-description = mantenimiento y actualización de Rust by Example governance-team-community-name = Equipo de comunidad -governance-team-community-description = Coordinación y soporte a eventos, creación de contenido, dirigir el programa RustBridge y llevar a cabo la encuesta. governance-team-wg-rustup-name = Grupo de trabajo de rustup governance-team-wg-rustup-description = Diseño e implementación de Rustup governance-team-wg-rustfmt-name = Grupo de trabajo de rustfmt diff --git a/locales/fa/community.ftl b/locales/fa/community.ftl index 0263dcc3..f65931ff 100644 --- a/locales/fa/community.ftl +++ b/locales/fa/community.ftl @@ -15,8 +15,5 @@ community-calendar = مشاهده تقویم community-event-run-header = رویداد خود را برگزار کنید community-event-register = رویداد خود را ثبت کنید community-rustfest-alt = شرکت کنندگان Rustfest -community-rustbridge-rustconf-alt = RustBridge در RustConf -community-rustbridge-paris-alt = RustBridge پاریس -community-rustbridge-berlin-alt = RustBridge برلین community-irr-button = از وب سایت بازدید کنید community-standards-header = استانداردهای جامعه diff --git a/locales/fr/community.ftl b/locales/fr/community.ftl index 5b85a2ee..47a952d8 100644 --- a/locales/fr/community.ftl +++ b/locales/fr/community.ftl @@ -35,13 +35,6 @@ community-event-run = community-events-repo = Consulter le dépôt de l’équipe événement community-event-register = Enregistrez votre événement community-rustfest-alt = Participants à la Rustfest -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge est un atelier de travail visant à permettre aux personnes sous-représentées, avec une expérience dans d'autres langages de programmation, d'apprendre le Rust et de rejoindre la communauté. -community-rustbridge-button = Consulter le dépôt de Rustbridge -community-rustbridge-rustconf-alt = RustBridge à la RustConf -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlin -community-rustbridge-rbr-alt = RustBridge à la Rust Belt community-irr-header = Faire Connaître Rust community-irr = Increasing Rust’s Reach (Étendre la portée de Rust) est un programme qui associe les membres des équipes Rust de toutes les parties du projet avec des individus qui sont sous-représentés dans la communauté Rust et l'industrie des technologies pour un partenariat de trois (3) mois, de mi-Mai à mi-Août. Chaque partenariat s'engage pour 3 à 5 heures par semaine sur un projet Rust. community-irr-button = Visiter le site Web diff --git a/locales/fr/teams.ftl b/locales/fr/teams.ftl index 8e0eae1d..d9d7afec 100644 --- a/locales/fr/teams.ftl +++ b/locales/fr/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = Développement de jeux governance-team-wg-gamedev-description = Faire de Rust le choix par défaut pour le développement de jeux. governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = Travailler avec le projet LLVM afin que Rust y soit représenté -governance-team-community-rustbridge-name = Équipe RustBridge -governance-team-community-rustbridge-description = Faciliter l'accès des groupes sous-représentés ou minoritaires à Rust governance-team-wg-grammar-name = Grammaire governance-team-wg-grammar-description = Décider de la grammaire formelle de Rust et la vérifier vis à vis des implémentations existantes governance-team-lang-name = Langage @@ -103,7 +101,6 @@ governance-team-wg-mir-opt-description = Écrire des optimisations pour MIR et r governance-team-rust-by-example-name = Rust by Exemple governance-team-rust-by-example-description = Maintenir et mettre à jour le livre officiel Rust, "Rust by Exemple" governance-team-community-name = Communauté -governance-team-community-description = Supporter et coordonner des évènements, la création de contenus, le programme RustBridge, et mener des sondages au sein de la communauté governance-team-wg-rustup-name = Rustup governance-team-wg-rustup-description = Concevoir et implémenter Rustup governance-team-wg-rustfmt-name = Rustfmt diff --git a/locales/it/community.ftl b/locales/it/community.ftl index c42c32d0..4794c4fa 100644 --- a/locales/it/community.ftl +++ b/locales/it/community.ftl @@ -35,13 +35,6 @@ community-event-run = community-events-repo = Guarda il repository degli eventi del team community-event-register = Registra il tuo evento community-rustfest-alt = Partecipanti al RustFest -community-rustbridge-header = Rustbridge -community-rustbridge = Il RustBridge è un workshop che ha come scopo quello di avvicinare a Rust persone con esperienza in altri linguaggi ma appartenenti a gruppi sociali sottorappresentati e di avvicinarle alla community. -community-rustbridge-button = Vai al repo Rustbridge -community-rustbridge-rustconf-alt = RustBridge al RustConf -community-rustbridge-paris-alt = Parigi RustBridge -community-rustbridge-berlin-alt = Berlino RustBridge -community-rustbridge-rbr-alt = RustBridge al Rust Belt Rust community-irr-header = Increasing Rust's Reach community-irr = "Increasing Rust's Reach" è un programma volto a far incontrare componenti del team Rust impegnati in varie parti del progetto, con membri sottorappresentati nella community di Rust e aziende del settore, per una partnership di tre (3) mesi, da metà maggio a metà agosto. L'accordo di partnership è rappresentato da circa 3-5 ore settimanali allocate su un progetto Rust. community-irr-button = Visita il sito diff --git a/locales/it/teams.ftl b/locales/it/teams.ftl index 60c30b27..29440320 100644 --- a/locales/it/teams.ftl +++ b/locales/it/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = Gruppo di lavoro sviluppo videogiochi governance-team-wg-gamedev-description = Al lavoro per far diventare Rust la scelta di default per lo sviluppo di videogiochi governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = Lavorare con l' upstream LLVM per rappresentare Rust nel suo processo di sviluppo. -governance-team-community-rustbridge-name = Team RustBridge -governance-team-community-rustbridge-description = Un'iniziativa educativa e inclusiva focalizzata sul coinvolgimento dei gruppi sottorappresentati in Rust. governance-team-wg-grammar-name = Grammar governance-team-wg-grammar-description = Lavorare alla formale grammatica ufficiale per Rust e validarla sulle implementazioni esistenti. governance-team-lang-name = Team linguaggio @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = Ottimizzazione MIR e refactor del codic governance-team-rust-by-example-name = Team Rust by Example governance-team-rust-by-example-description = Mantenere e aggiornare Rust by Example governance-team-community-name = Team community -governance-team-community-description = Coordinazione e supporto agli eventi, creazione dei contenuti, gestione del programma RustBridge e sondaggi. governance-team-wg-rustup-name = Gruppo di lavoro Rustup governance-team-wg-rustup-description = design e implementazione di Rustup governance-team-wg-rustfmt-name = Gruppo di lavoro Rustfmt diff --git a/locales/ja/community.ftl b/locales/ja/community.ftl index 5c5e5b65..8b691270 100644 --- a/locales/ja/community.ftl +++ b/locales/ja/community.ftl @@ -34,13 +34,6 @@ community-event-run = community-events-repo = イベントチームのリポジトリを確認する community-event-register = イベントを登録する community-rustfest-alt = Rustfest参加者 -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridgeは、他の言語をバックグラウンドとして持つRustに馴染みのない人々を対象とした、Rustを学びコミュニティに参加して頂くためのワークショップです。 -community-rustbridge-button = Rustbridgeのリポジトリを確認する -community-rustbridge-rustconf-alt = RustBridge at RustConf -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlin -community-rustbridge-rbr-alt = RustBridge at Rust Belt Rust community-irr-header = Increasing Rust’s Reach community-irr = Increasing Rust’s Reachは5月中旬から8月中旬までの3ヶ月間のパートナーシップで、Rustプロジェクトのあらゆるチームメンバーと、Rustコミュニティやテクノロジー業界であまり知られていない個人を繋ぐことを目的としたプログラムです。それぞれのパートナーシップは、Rustプロジェクトに週に3~5時間取り組むことに合意しています。 community-irr-button = ウェブサイトにアクセスする diff --git a/locales/ja/teams.ftl b/locales/ja/teams.ftl index 82e48ec9..969e79b5 100644 --- a/locales/ja/teams.ftl +++ b/locales/ja/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = ゲーム開発ワーキンググループ governance-team-wg-gamedev-description = Rustをゲーム開発のデフォルトの選択肢にすることに焦点を置いています。 governance-team-wg-llvm-name = LLVMワーキンググループ governance-team-wg-llvm-description = 開発中のRustの言語表現のために上流のLLVMを調整します -governance-team-community-rustbridge-name = RustBridgeチーム -governance-team-community-rustbridge-description = あまり馴染みのない人々をRustに呼び込むことに焦点を絞った、包括的な教育イニシアティブ。 governance-team-wg-grammar-name = グラマーワーキンググループ governance-team-wg-grammar-description = Rustの正式な文法を練り上げ、既存の実装と比較して検証します。 governance-team-lang-name = 言語チーム @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = MIRの最適化機能の実装と、さ governance-team-rust-by-example-name = Rust by Exampleチーム governance-team-rust-by-example-description = Rust By Exampleの管理と更新を行います governance-team-community-name = コミュニティチーム -governance-team-community-description = イベントの調整やサポート、コンテンツの作成、RustBridgeプログラムの実行、調査の実施を行います。 governance-team-wg-rustup-name = Rustupワーキンググループ governance-team-wg-rustup-description = Rustupの設計と実装を行います governance-team-wg-rustfmt-name = Rustfmtワーキンググループ diff --git a/locales/ko/community.ftl b/locales/ko/community.ftl index 4178e606..655db29f 100644 --- a/locales/ko/community.ftl +++ b/locales/ko/community.ftl @@ -17,9 +17,6 @@ community-calendar = 일정표 보기 community-conference-lineup = 2020 컴퍼런스 라인업 살펴보기 community-event-register = 행사 등록하기 community-rustfest-alt = Rustfest 참가자 -community-rustbridge-header = Rustbridge -community-rustbridge-rustconf-alt = RustConf의 RustBridge -community-rustbridge-rbr-alt = Rust Belt Rust의 RustBridge community-irr-button = 웹 사이트 방문하기 community-standards-header = 커뮤니티 표준 community-mod-button = 중재 팀에 문의하기 diff --git a/locales/ko/teams.ftl b/locales/ko/teams.ftl index def52baa..2efbbc3a 100644 --- a/locales/ko/teams.ftl +++ b/locales/ko/teams.ftl @@ -8,7 +8,6 @@ governance-team-compiler-name = 컴파일러 팀 governance-team-core-name = 코어 팀 governance-team-mods-discord-name = 디스코드 중재자 governance-team-wg-llvm-name = LLVM 작업 그룹 -governance-team-community-rustbridge-name = RustBridge 팀 governance-team-wg-grammar-name = 문법 작업 그룹 governance-team-lang-name = 언어 팀 governance-team-docs-rs-name = Docs.rs 팀 diff --git a/locales/pl/community.ftl b/locales/pl/community.ftl index eabea489..a36363f0 100644 --- a/locales/pl/community.ftl +++ b/locales/pl/community.ftl @@ -46,13 +46,6 @@ community-event-run = community-events-repo = Sprawdź repozytorium Zespołu ds. Wydarzeń community-event-register = Zajerestruj swoje wydarzenie community-rustfest-alt = Uczestnicy Rustfest -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge to warsztaty mające na celu pomoc osobom z niedostatecznie reprezentowanych grup, nauczenie ich Rusta oraz ułatwienie im dołączenia do społeczności. -community-rustbridge-button = Sprawdź repozytorium Rustbridge -community-rustbridge-rustconf-alt = RustBridge na RustConf -community-rustbridge-paris-alt = RustBridge Paryż -community-rustbridge-berlin-alt = RustBridge Berlin -community-rustbridge-rbr-alt = RustBridge na Rust Belt Rust community-irr-header = Zwiększanie Zasięgu Rusta community-irr = Zwiększanie Zasięgu Rusta to program, który paruje członków rozmaitych zespołów projektu Rust z osobami, które są niedostatecznie reprezentowane w ramach społeczności Rusta i szerzej w ramach przemysłu informatycznego. W ramach programu zawiązywana jest tymczasowa współpraca między osobami na czas trzech (3) miesięcy, od maja do sierpnia. Oczekiwany czas poświęcony na współpracę to od 3 do 5 godzin tygodniowo spędzone na pracy nad projektami w Ruście. community-irr-button = Odwiedź Witrynę diff --git a/locales/pl/teams.ftl b/locales/pl/teams.ftl index 89ea2a40..949dfa58 100644 --- a/locales/pl/teams.ftl +++ b/locales/pl/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = Grupa robocza ds. tworzenia gier governance-team-wg-gamedev-description = Praca nad stworzeniem Rusta oczywistym wyborem dla osób programujących gry komputerowe. governance-team-wg-llvm-name = Grupa robocza ds. LLVM governance-team-wg-llvm-description = Praca z LLVM na poziomie ich repozytoriów, tak aby Rust był uwzględniony w procesie rozwoju tej architektury -governance-team-community-rustbridge-name = Zespół ds. RustBridge -governance-team-community-rustbridge-description = Pomoc w zaprzyjaźnianiu niedostatecznie reprezentowanych grup z Rustem governance-team-wg-grammar-name = Grupa robocza ds. gramatyki języka governance-team-wg-grammar-description = Wypracowywanie oficjalnej, formalnej gramatyki dla Rusta i sprawdzanie zgodności z istniejącymi implementacjami governance-team-lang-name = Zespół ds. języka diff --git a/locales/pt-BR/community.ftl b/locales/pt-BR/community.ftl index 5b9abdb6..92dd8ddd 100644 --- a/locales/pt-BR/community.ftl +++ b/locales/pt-BR/community.ftl @@ -47,13 +47,6 @@ community-event-run = community-events-repo = Confira o repositório da Equipe de Eventos community-event-register = Registre o seu evento community-rustfest-alt = Participantes do Rustfest -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge é uma oficina focada em ajudar pessoas pouco representadas na área de tecnologia com experiência em outras linguagens a aprender Rust e se juntar a comunidade. -community-rustbridge-button = Confira o repositório do Rustbridge -community-rustbridge-rustconf-alt = RustBridge na RustConf -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlim -community-rustbridge-rbr-alt = RustBridge na Rust Belt Rust community-irr-header = Increasing Rust’s Reach community-irr = Increasing Rust’s Reach é um programa onde membros de todas as partes do projeto são apresentados a membros poucos representados na comunidade Rust e na indústria de tecnologia, para uma parceria de três (3) meses, do meio de Maio até o meio de Agosto. Cada parceria se compromete a trabalhar de 3-5 horas por semana em um projeto Rust. community-irr-button = Visite o website diff --git a/locales/pt-BR/teams.ftl b/locales/pt-BR/teams.ftl index f213b394..5a62575e 100644 --- a/locales/pt-BR/teams.ftl +++ b/locales/pt-BR/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = Grupo de trabalho de Desenvolvimento de Jogos governance-team-wg-gamedev-description = Focado em tornar Rust a opção padrão para desenvolvimento de jogos. governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = Trabalhando com o equipe oficial do LLVM para representar o Rust em seu desenvolvimento -governance-team-community-rustbridge-name = Time RustBridge -governance-team-community-rustbridge-description = Uma iniciativa educacional inclusiva focada em trazer grupos sub-representados para o Rust. governance-team-wg-grammar-name = Gramática governance-team-wg-grammar-description = Desenvolvendo a gramática formal e oficial para o Rust e a validando com as implementações existentes. governance-team-lang-name = Time da linguagem @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = Escreva otimizações MIR (Mid-level governance-team-rust-by-example-name = Equipe do Rust por Exemplos governance-team-rust-by-example-description = mantendo e atualizando o livro Rust por Exemplos governance-team-community-name = Time de Comunidade -governance-team-community-description = Coordenação e apoio a eventos, criação de conteúdos, organização do programa RustBridge, e conduzindo a pesquisa. governance-team-wg-rustup-name = Grupo de trabalho de Rustup governance-team-wg-rustup-description = design e implementação do Rustup governance-team-wg-rustfmt-name = Grupo de trabalho Rustfmt diff --git a/locales/ru/community.ftl b/locales/ru/community.ftl index 51f60a06..33976be6 100644 --- a/locales/ru/community.ftl +++ b/locales/ru/community.ftl @@ -36,13 +36,6 @@ community-event-run = community-events-repo = Посмотрите репозиторий Events Team community-event-register = Зарегистрировать событие community-rustfest-alt = Участники Rustfest -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge - это семинар для изучения Rust и входа в сообщество, ориентированный на недопредставленных людей со знаниями в других языках программирования. -community-rustbridge-button = Посмотрите репозиторий Rustbridge -community-rustbridge-rustconf-alt = RustBridge на RustConf -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlin -community-rustbridge-rbr-alt = RustBridge на Rust Belt Rust community-irr-header = Увеличение доступности Rust community-irr = Увеличение доступности Rust - это программа, в которой участники всех команд в течении трёх (3) месяцев, с середины мая, по середину августа, работают в партнёрстве с лицами, недопредставленными в Rust сообществе и технической индустрии. Каждый партнёр соглашается уделять 3-5 часов в неделю для работы над Rust. community-irr-button = Посетить сайт diff --git a/locales/ru/teams.ftl b/locales/ru/teams.ftl index 3d6440d7..c32855ec 100644 --- a/locales/ru/teams.ftl +++ b/locales/ru/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = Game development working group governance-team-wg-gamedev-description = Сосредотачивает внимание на том, чтобы сделать Rust выбором по умолчанию для разработки игр. governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = Работа с LLVM для предоставления Rust -governance-team-community-rustbridge-name = RustBridge team -governance-team-community-rustbridge-description = Инклюзивная образовательная инициатива, направленная на привлечение недостаточно представленных групп в Rust. governance-team-wg-grammar-name = Грамматика governance-team-wg-grammar-description = Работают над официальной, формальной грамматикой для Rust и проверяют существующие реализации на её соответствие. governance-team-lang-name = Language team @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = Написание оптимизаци governance-team-rust-by-example-name = Команда Rust by Example governance-team-rust-by-example-description = Поддержка и обновление Rust By Example governance-team-community-name = Community team -governance-team-community-description = Координация и поддержка мероприятий, создание контента, запуск RustBridge и проведение опросов. governance-team-wg-rustup-name = Rustup working group governance-team-wg-rustup-description = Дизайн и реализация Rustup governance-team-wg-rustfmt-name = Rustfmt working group diff --git a/locales/tr/community.ftl b/locales/tr/community.ftl index 0a5011a9..2473362c 100644 --- a/locales/tr/community.ftl +++ b/locales/tr/community.ftl @@ -32,13 +32,6 @@ community-event-run = community-events-repo = Etkinlik ekibinin deposuna göz atın community-event-register = Etkinliğinizi kaydedin community-rustfest-alt = Rustfest katılımcıları -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge, Rust öğrenmek ve topluluğa katılmak için başka bir dille uğraşmış tanınmayan insanları Rust'a katmak için odaklanmış bir atölyedir. -community-rustbridge-button = { ENGLISH("Rustbridge") } deposuna göz atın -community-rustbridge-rustconf-alt = RustConf'ta RustBridge -community-rustbridge-paris-alt = RustBridge Paris -community-rustbridge-berlin-alt = RustBridge Berlin -community-rustbridge-rbr-alt = Rust Belt Rust'ta RustBridge community-irr-header = Increasing Rust's Reach community-irr = Increasing Rust's Reach, mayıs ayının ortasından ağustos ayının ortasına kadar üç (3) aylık bir ortaklık için Rust toplumunda ve teknoloji endüstrisinde yeterince temsil edilmeyen bireylerle projenin tüm bölümlerinden Rust ekibi üyelerini eşleştiren bir programdır. Her bir ortaklık, bir Rust projesinde çalışmak üzere haftada 3-5 saatlik bir taahhüt vermeyi kabul eder. community-irr-button = İnternet Sitesini Ziyaret Edin diff --git a/locales/tr/teams.ftl b/locales/tr/teams.ftl index 497182b8..9ab71173 100644 --- a/locales/tr/teams.ftl +++ b/locales/tr/teams.ftl @@ -34,8 +34,6 @@ governance-team-wg-gamedev-name = Oyun geliştirme çalışma grubu governance-team-wg-gamedev-description = Rust'ı oyun geliştirme alanında ilk tercih yapmaya odaklanır. governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = Rust'ın gelişimini yansıtmak için LLVM kaynağıyla çalışır -governance-team-community-rustbridge-name = RustBridge ekibi -governance-team-community-rustbridge-description = Yeteri kadar temsil edilmeyen grupları Rust'a getirmeye odaklanan kapsamlı eğitici bir girişimdir. governance-team-wg-grammar-name = Dil Bilgisi governance-team-wg-grammar-description = Rust'ın resmi dil kurallarını belirler ve bu dil kurallarını var olan Rust uygulaması ile doğrular. governance-team-lang-name = Dil ekibi @@ -96,7 +94,6 @@ governance-team-wg-mir-opt-description = Orta seviye ara temsilci(OSAT) optimiza governance-team-rust-by-example-name = Örneklerle Rust ekibi governance-team-rust-by-example-description = Örneklerle Rust'ı günceller ve sürdürür governance-team-community-name = Topluluk ekibi -governance-team-community-description = Etkinliklerin koordinasyonu ve desteklenmesi, içerik üretilmesi, RustBridge programının ve anketlerin yürütülmesi üzerine çalışır. governance-team-wg-rustup-name = Rustup çalışma grubu governance-team-wg-rustup-description = Rustup'ın tasarısı ve uygulaması governance-team-wg-rustfmt-name = Rustfmt çalışma grubu diff --git a/locales/xx-AU/teams.ftl b/locales/xx-AU/teams.ftl index 7d59e9e7..30fc0009 100644 --- a/locales/xx-AU/teams.ftl +++ b/locales/xx-AU/teams.ftl @@ -40,8 +40,6 @@ governance-team-infra-name = ɯɐǝʇ ǝɹnʇɔnɹʇsɐɹɟuI governance-team-infra-description = sɔᴉɹʇǝɯ 'sʇoq 'sǝsɐǝlǝɹ 'IƆ :ɟlǝsʇᴉ ʇɔǝɾoɹd ʇsnɹ ǝɥʇ ƃuᴉʇɹoddns ǝɹnʇɔnɹʇsɐɹɟuᴉ governance-team-wg-debugging-name = dnoɹƃ ƃuᴉʞɹoʍ ƃuᴉƃƃnqǝp governance-team-wg-debugging-description = suoᴉʇɐpunoɟ puɐ slooʇ ƃuᴉƃƃnqǝp -governance-team-community-rustbridge-name = ɯɐǝʇ ǝƃpᴉɹqʇsnɹ -governance-team-community-rustbridge-description = ˙ʇsnɹ oʇuᴉ sdnoɹƃ pǝʇuǝsǝɹdǝɹɹǝpun ƃuᴉƃuᴉɹq uo pǝsnɔoɟ ǝʌᴉʇɐᴉʇᴉuᴉ lɐuoᴉʇɐɔnpǝ ǝʌᴉsnlɔuᴉ u∀ governance-team-libs-name = ɯɐǝʇ ʎɹɐɹqᴉ˥ governance-team-libs-description = ʇɹoddns ɯǝʇsʎsoɔǝ puɐ 'suoᴉʇuǝʌuoɔ 'sǝʇɐɹɔ ƃuɐl-ʇsnɹ 'ʎɹɐɹqᴉl pɹɐpuɐʇs ʇsnɹ ǝɥʇ governance-team-wg-grammar-name = ɹɐɯɯɐɹפ diff --git a/locales/zh-CN/community.ftl b/locales/zh-CN/community.ftl index ff22c813..fbfd6fb8 100644 --- a/locales/zh-CN/community.ftl +++ b/locales/zh-CN/community.ftl @@ -36,13 +36,6 @@ community-event-run = community-events-repo = 访问活动团队的 GitHub community-event-register = 注册活动 community-rustfest-alt = Rustfest 参会者 -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge 是一个专注于让具有不同编程语言背景的人学习 Rust 并加入社区的研讨会。 -community-rustbridge-button = 访问 Rustbridge 的 GitHub -community-rustbridge-rustconf-alt = RustBridge 在 RustConf 大会 -community-rustbridge-paris-alt = RustBridge 巴黎 -community-rustbridge-berlin-alt = RustBridge 柏林 -community-rustbridge-rbr-alt = RustBridge 在 Rust Belt Rust 大会 community-irr-header = Rust 星火计划 community-irr = 「Rust 星火计划」是一项合作计划。在该计划中,来自 Rust 不同项目的团队成员将会联合 Rust 社区中通常不太活跃的个人和技术企业,从 5 月中旬持续到 8 月中旬,进行为期三个月的合作。每个参与者都必须承诺在合作项目上每周投入 3-5 小时。 community-irr-button = 访问网站 diff --git a/locales/zh-CN/teams.ftl b/locales/zh-CN/teams.ftl index a3e6b15a..42fe7fee 100644 --- a/locales/zh-CN/teams.ftl +++ b/locales/zh-CN/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = 游戏开发工作组 governance-team-wg-gamedev-description = 专注于让 Rust 成为游戏开发的默认选择。 governance-team-wg-llvm-name = LLVM 工作组 governance-team-wg-llvm-description = 代表 Rust 参与上游 LLVM 的开发工作。 -governance-team-community-rustbridge-name = RustBridge 团队 -governance-team-community-rustbridge-description = 主要目的是将那些不具代表性的小众人群纳入 Rust 的包容性教育计划。 governance-team-wg-grammar-name = 语法工作组 governance-team-wg-grammar-description = 编写 Rust 的官方正式语法,并根据现有的实现进行验证。 governance-team-lang-name = 语言团队 @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = 编写 MIR 优化代码,重构 MIR governance-team-rust-by-example-name = 《通过例子学 Rust》团队 governance-team-rust-by-example-description = 维护并更新《通过例子学 Rust》 governance-team-community-name = 社区团队 -governance-team-community-description = 协调并支持活动,运营 RustBridge 项目以及开展调查。 governance-team-wg-rustup-name = Rustup 工作组 governance-team-wg-rustup-description = 设计并实现 Rustup governance-team-wg-rustfmt-name = Rustfmt 工作组 diff --git a/locales/zh-TW/community.ftl b/locales/zh-TW/community.ftl index 975cd07c..88d52397 100644 --- a/locales/zh-TW/community.ftl +++ b/locales/zh-TW/community.ftl @@ -28,13 +28,6 @@ community-event-run = 隨著 Rust 的發展,我們樂於幫忙大家推動自 community-events-repo = 活動團隊 Repo community-event-register = 登記您的活動 community-rustfest-alt = Rustfest 參與者 -community-rustbridge-header = Rustbridge -community-rustbridge = RustBridge 是一個專注於促進擁有其他程式語言背景而未被關注的人們來學習 Rust 進而投入社群的工作坊。 -community-rustbridge-button = Rustbridge Repo -community-rustbridge-rustconf-alt = RustConf 的 RustBridge 工作坊 -community-rustbridge-paris-alt = 巴黎 RustBridge 工作坊 -community-rustbridge-berlin-alt = 柏林 RustBridge 工作坊 -community-rustbridge-rbr-alt = Rust Belt Rust 的 RustBridge工作坊 community-irr-header = Rust 推廣計畫 community-irr = 「Rust 推廣計畫」媒合來自 Rust 專案中所有項目的團隊成員,以及 Rust 社群中未被關注的個人、技術企業,進行為期三個月,從五月中到八月中的合作計畫。每個合作夥伴皆承諾在一個 Rust 專案投入每週三到五小時的時間。 community-irr-button = 參觀網站 diff --git a/locales/zh-TW/teams.ftl b/locales/zh-TW/teams.ftl index f3b13dd2..05156adf 100644 --- a/locales/zh-TW/teams.ftl +++ b/locales/zh-TW/teams.ftl @@ -37,8 +37,6 @@ governance-team-wg-gamedev-name = 遊戲開發工作組 governance-team-wg-gamedev-description = 專注於使 Rust 成為遊戲開發的默認選擇 governance-team-wg-llvm-name = LLVM governance-team-wg-llvm-description = 代表 Rust 與 LLVM 團隊合作 -governance-team-community-rustbridge-name = RustBridge 團隊 -governance-team-community-rustbridge-description = 專注於將小眾群體納入 Rust 的包容性教育計畫。 governance-team-wg-grammar-name = 語法 governance-team-wg-grammar-description = 設計 Rust 的官方、正式語法並對既存的實作進行驗證。 governance-team-lang-name = 語言團隊 @@ -104,7 +102,6 @@ governance-team-wg-mir-opt-description = 撰寫基於 MIR 的最佳化程式碼 governance-team-rust-by-example-name = 《透過範例學習 Rust》團隊 governance-team-rust-by-example-description = 維護並更新《透過範例學習 Rust》 governance-team-community-name = 社群團隊 -governance-team-community-description = 協調並支援活動、製作素材、營運 RustBridge 以及執行問卷調查 governance-team-wg-rustup-name = Rustup 工作小組 governance-team-wg-rustup-description = 設計並實作 Rustup governance-team-wg-rustfmt-name = Rustfmt 工作組 diff --git a/static/images/rustbridge-berlin.jpg b/static/images/rustbridge-berlin.jpg deleted file mode 100644 index 3dc23e7bd97fcd9bc2dc8188d9dc3062b5590b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51063 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 QoeyxEEW|gmoBsg+*##0FA^-pY diff --git a/static/images/rustbridge-paris.jpg b/static/images/rustbridge-paris.jpg deleted file mode 100644 index 0936c88a48c2c54723aa1e66df3d01f4dc4a2377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41414 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

    $f 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 diff --git a/static/images/rustbridge-rbr.jpg b/static/images/rustbridge-rbr.jpg deleted file mode 100644 index 080476e33275c87df6643f56f5f8bc3acbda083a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36194 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 diff --git a/static/images/rustbridge-rustconf.jpg b/static/images/rustbridge-rustconf.jpg deleted file mode 100644 index de7c597a6998acfa688d22f8ae375ff118f0c378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44392 zcmb4~Wl$VJ_wE-B8r&tgLxQ`rEbeYe&|NeH_ayk@uEBj-2=4Cgx6i8sA=EO zBK^DU75b~!7#Oc zQBcud0gy3}F#oOsF#h+M;C1z61j(Gge(fQ6R!T@TDTrV2cHKkcM&!eaG>QA+XsrIw zWyoYMcgBCCPrR&P*I4e{+?ak`CjNVJ9tAhzL110nNEs>HGceG zOi9?`NW3M$C4N(z)4nh$=o!1pmK%e37ZVZ@V^`O(=GfKrJ*7I6Wl#}7`&s5kdSbwf zt*xz%xUs^Z@XsK(_Y`NP6_0f>#JB4tON$g_6qr~ecwTO8jbj#`RrFPvs-0*!~J$+(wv^Dw&>zJ~)%c#&Lq!*VKGD}%) z`8T8NmP#uY^{a`1Kbg>nQ)y!DRr`_x4F=)JsE~-b1wq4=9S`Tn;C@L}0ird2-D{>kPHkrQf;UyEI$MZ$&fGHm%~~fT`FgawwF9FeHW+rTGgFV+ z|GVJS>ignt0QVd=yG-|oA%l17vu{b($Es=iriIOO<&zRhQN7ScWm22Kk3&s%k<)!m z#~8znXk+)sCD()o^9^R(eKc8CB|oZV#irEh%KjYs$$50hHNY5kVohyNy*VBaO8`20 zaCSx?_gAlF%+_7c**CP^=?FVCCZ&YLv=Q}t940pxMXeS>F+U~@9AGMe);oD_N@pGw z(Ic^pgMSt#CK>q64aePCrwvm4`l`6hH*ys^15vMb8)Kt_c5*D}Juj$dD0BaF%tRl`;s5q7$aj8Dg0Zqu}L^H00i^{BLR zdH!SK6dZje4zpMV4Tmb-w(G7_lAt|`GF1QhUbK`Rtu|yY2oqxq?krKBl_$hqKW~M7 zbR|Iq2T53ep)c=qd?PBiOiQvnd-_sIL17*E8b(kt0&yS4W)&|WcH3^gTRE^_OpoeJd4XsZ|clIl`OScF$)!AQv8 zJ4xlGXbAR#_#55>t;XCzDS2XqO+>Q$gLLtv?$AD~IO-}a&os@8<<+vnh$K&z>3Oy8 z-xGhVFqqUHin&nBHj|g?WPLiuTkvad#`WJrC~BL1Qj07<2bmk8Bk3!MHL>;mdEUuY zPwK(-2X&1uFr ze!&ujlj4qs#Cei^q7#Z}aBY>b=O)|hsz*=k?+zXwhG*-WWq~CjOqkl^AabQ5$&byI zSzM>mER&XN^MnD+dNr;REQ^YRHRVfhBQd@bv(y~fTLP}M^cqz8M)2aAAU|Y%R*2|k zRNo0$oQHmMI;uG*O-m%HPI8TtWMu4D*ilwiz`s-$$=p*{GI>p9KYy{b+Xy|pAt=-dvhF1*w@qIJ#mx_Od;yIGf<8)lWMAp#13i z6|a_?RUV`X`iV18HK(fRt%f?Q<}!#6&$2C_K)5yi1&D{5l%Q!xK z4{61bd#VJgIVwXR@*VYQUN3(c1A~A)Z$k(ZqMe*8={W3Icq**mMz#@&2%Sb|N2xy} z?^IGp_K;o~01ul&8iDl)kq|x-4t2~HabfK+eM<)&b!sQ~pK6(hQs{ZSr z=Ek|BvDj3qVa*G?%L*4JQVVU7s@d8Jy(dVv)6;q1$5@@Rqd?@BjxaabcR&e-7e}9Bh_Oi-FjrHY1lbc<

    dv$I+ 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 diff --git a/static/images/rustbridge.jpg b/static/images/rustbridge.jpg deleted file mode 100644 index 405b63b9de4c1474a3c934733e4b76b784759a1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38506 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 diff --git a/templates/community/index.html.hbs b/templates/community/index.html.hbs index 197f4340..2c2fc9be 100644 --- a/templates/community/index.html.hbs +++ b/templates/community/index.html.hbs @@ -179,34 +179,6 @@ -

    - -
    -
    From 6d7b7ba5bb593d414358be8379aa2b29b2afbde0 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 May 2024 19:05:59 +0200 Subject: [PATCH 17/29] Delete reference to events-team repository The repo is not active anymore, see for example: https://github.com/rust-community/events-team/issues/70#issuecomment-1466360589 --- locales/en-US/community.ftl | 1 - locales/es/community.ftl | 1 - locales/fr/community.ftl | 1 - locales/it/community.ftl | 1 - locales/ja/community.ftl | 1 - locales/pl/community.ftl | 1 - locales/pt-BR/community.ftl | 1 - locales/ru/community.ftl | 1 - locales/tr/community.ftl | 1 - locales/zh-CN/community.ftl | 1 - locales/zh-TW/community.ftl | 1 - templates/community/index.html.hbs | 3 --- 12 files changed, 14 deletions(-) diff --git a/locales/en-US/community.ftl b/locales/en-US/community.ftl index ed69665d..40ac602b 100644 --- a/locales/en-US/community.ftl +++ b/locales/en-US/community.ftl @@ -49,7 +49,6 @@ community-event-run = Registering your event helps us to keep track of our community efforts and allows us to connect you to speakers or other members in your area.

    -community-events-repo = Check out the events team repo community-event-register = Register your event community-rustfest-alt = Rustfest participants diff --git a/locales/es/community.ftl b/locales/es/community.ftl index 5f493aaf..655aeeac 100644 --- a/locales/es/community.ftl +++ b/locales/es/community.ftl @@ -46,7 +46,6 @@ community-event-run = Registrar tu evento nos ayuda a identificar los esfuerzos de nuestra comunidad y nos permite ponerte en contacto con expertos u otros miembros en tu zona.

    -community-events-repo = Consultar el repositorio del equipo de Eventos community-event-register = Registra tu evento community-rustfest-alt = Participantes de Rustfest community-irr-header = Increasing Rust's Reach diff --git a/locales/fr/community.ftl b/locales/fr/community.ftl index 47a952d8..d222d446 100644 --- a/locales/fr/community.ftl +++ b/locales/fr/community.ftl @@ -32,7 +32,6 @@ community-event-run =

    Enregistrer votre évènement nous aide à garder la trace des efforts de notre communauté et nous permet de vous mettre en contact avec des présentateurs et d'autres membres autour de vous.

    -community-events-repo = Consulter le dépôt de l’équipe événement community-event-register = Enregistrez votre événement community-rustfest-alt = Participants à la Rustfest community-irr-header = Faire Connaître Rust diff --git a/locales/it/community.ftl b/locales/it/community.ftl index 4794c4fa..166a4a3c 100644 --- a/locales/it/community.ftl +++ b/locales/it/community.ftl @@ -32,7 +32,6 @@ community-event-run =

    Registrando il tuo evento ci aiuterai a tenere traccia delle iniziative dell'intera community, permettendoci di metterti in contatto con speaker o altri membri nella tua zona.

    -community-events-repo = Guarda il repository degli eventi del team community-event-register = Registra il tuo evento community-rustfest-alt = Partecipanti al RustFest community-irr-header = Increasing Rust's Reach diff --git a/locales/ja/community.ftl b/locales/ja/community.ftl index 8b691270..97ccc181 100644 --- a/locales/ja/community.ftl +++ b/locales/ja/community.ftl @@ -31,7 +31,6 @@ community-event-run =

    さらに開催するイベントを登録いただくことで、私たちはコミュニティとしての取り組みを把握することができるようになり、あなたをその地域にいるスピーカーや他のメンバーと繋げることができるでしょう

    -community-events-repo = イベントチームのリポジトリを確認する community-event-register = イベントを登録する community-rustfest-alt = Rustfest参加者 community-irr-header = Increasing Rust’s Reach diff --git a/locales/pl/community.ftl b/locales/pl/community.ftl index a36363f0..6880bf17 100644 --- a/locales/pl/community.ftl +++ b/locales/pl/community.ftl @@ -43,7 +43,6 @@ community-event-run = na rzecz rozwoju społeczności, oraz pozwoli nam połączyć Cię z innymi Rustianami w Twojej okolicy.

    -community-events-repo = Sprawdź repozytorium Zespołu ds. Wydarzeń community-event-register = Zajerestruj swoje wydarzenie community-rustfest-alt = Uczestnicy Rustfest community-irr-header = Zwiększanie Zasięgu Rusta diff --git a/locales/pt-BR/community.ftl b/locales/pt-BR/community.ftl index 92dd8ddd..0e0b7b96 100644 --- a/locales/pt-BR/community.ftl +++ b/locales/pt-BR/community.ftl @@ -44,7 +44,6 @@ community-event-run =

    Registrar seu evento nos ajuda a rastrear os esforços da nossa comunidade e nos permite lhe conectar com palestrantes ou outros membros da sua região.

    -community-events-repo = Confira o repositório da Equipe de Eventos community-event-register = Registre o seu evento community-rustfest-alt = Participantes do Rustfest community-irr-header = Increasing Rust’s Reach diff --git a/locales/ru/community.ftl b/locales/ru/community.ftl index 33976be6..e030c173 100644 --- a/locales/ru/community.ftl +++ b/locales/ru/community.ftl @@ -33,7 +33,6 @@ community-event-run = Регистрация вашего мероприятия помогает нам отслеживать наши усилия в сообществе и позволяет нам связать вас со спикерами или другими участниками в вашем регионе.

    -community-events-repo = Посмотрите репозиторий Events Team community-event-register = Зарегистрировать событие community-rustfest-alt = Участники Rustfest community-irr-header = Увеличение доступности Rust diff --git a/locales/tr/community.ftl b/locales/tr/community.ftl index 2473362c..27ba228d 100644 --- a/locales/tr/community.ftl +++ b/locales/tr/community.ftl @@ -29,7 +29,6 @@ community-event-run =

    Etkinliğinizi kaydetmeniz topluluğun emeğini takip etmemizi ve siz konuşmacıları bölgenizdeki diğer üyelerle buluşturmamızı sağlar.

    -community-events-repo = Etkinlik ekibinin deposuna göz atın community-event-register = Etkinliğinizi kaydedin community-rustfest-alt = Rustfest katılımcıları community-irr-header = Increasing Rust's Reach diff --git a/locales/zh-CN/community.ftl b/locales/zh-CN/community.ftl index fbfd6fb8..caeb5f53 100644 --- a/locales/zh-CN/community.ftl +++ b/locales/zh-CN/community.ftl @@ -33,7 +33,6 @@ community-event-run = 注册您的活动有助于我们持续跟踪社区的影响力, 并能让我们为您与当地的演讲者和其他成员建立联系。

    -community-events-repo = 访问活动团队的 GitHub community-event-register = 注册活动 community-rustfest-alt = Rustfest 参会者 community-irr-header = Rust 星火计划 diff --git a/locales/zh-TW/community.ftl b/locales/zh-TW/community.ftl index 88d52397..b92bca67 100644 --- a/locales/zh-TW/community.ftl +++ b/locales/zh-TW/community.ftl @@ -25,7 +25,6 @@ community-calendar = 查看行事曆 community-conference-lineup = 2020 研討會時間表 community-event-run-header = 自己辦活動! community-event-run = 隨著 Rust 的發展,我們樂於幫忙大家推動自己的地區性活動。從學習、實作、駭客、聚會以至研討會,Rust 活動團隊都已準備好為您提供支援。 -community-events-repo = 活動團隊 Repo community-event-register = 登記您的活動 community-rustfest-alt = Rustfest 參與者 community-irr-header = Rust 推廣計畫 diff --git a/templates/community/index.html.hbs b/templates/community/index.html.hbs index 2c2fc9be..d6623a6b 100644 --- a/templates/community/index.html.hbs +++ b/templates/community/index.html.hbs @@ -165,9 +165,6 @@ {{fluent "community-event-run"}}
      -
    • - {{fluent "community-events-repo"}} -
    • {{fluent "community-event-register"}} From ec03d51de46368871ae9b602e311ab388358c3f9 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 May 2024 19:53:13 +0200 Subject: [PATCH 18/29] Delete reference to 2020 conference --- locales/de/community.ftl | 1 - locales/en-US/community.ftl | 1 - locales/es/community.ftl | 1 - locales/fr/community.ftl | 1 - locales/it/community.ftl | 1 - locales/ja/community.ftl | 1 - locales/ko/community.ftl | 1 - locales/pl/community.ftl | 1 - locales/pt-BR/community.ftl | 1 - locales/ru/community.ftl | 1 - locales/tr/community.ftl | 1 - locales/zh-CN/community.ftl | 1 - locales/zh-TW/community.ftl | 1 - templates/community/index.html.hbs | 4 ---- 14 files changed, 17 deletions(-) diff --git a/locales/de/community.ftl b/locales/de/community.ftl index d4f39f0f..ee87c9a1 100644 --- a/locales/de/community.ftl +++ b/locales/de/community.ftl @@ -11,7 +11,6 @@ community-events-header = Veranstaltungen community-meetup-header = Finde ein Treffen order eine Konferenz in deiner Nähe community-meetup = Es gibt mehr als 90 Treffen und einige Konferenzen in über 35 Ländern. Rust User Groups sind regelmäßige Treffen und ein guter Weg, andere Rust-Interessierte kennen zu lernen. Typischerweise sind diese Treffen informell und für alle offen. community-calendar = Kalender ansehen -community-conference-lineup = Zum Programm für 2020 community-event-run-header = Stelle dein eigenes Event auf die Beine community-event-register = Trage dein Event ein community-rustfest-alt = Rustfest Teilnehmer diff --git a/locales/en-US/community.ftl b/locales/en-US/community.ftl index 40ac602b..346ab623 100644 --- a/locales/en-US/community.ftl +++ b/locales/en-US/community.ftl @@ -36,7 +36,6 @@ community-events-header = Events community-meetup-header = Find a local meetup or conference community-meetup = There are more than 90 Meetups and several conferences worldwide in over 35 countries. Rustaceans meet periodically in Rust User Groups. They are a great introduction to the community and a great way to learn and socialize with other people with a similar interest. Meetings are usually informal and open to everyone. community-calendar = View Calendar -community-conference-lineup = Check out the 2020 Conference Lineup community-event-run-header = Run your own event community-event-run = diff --git a/locales/es/community.ftl b/locales/es/community.ftl index 655aeeac..67329475 100644 --- a/locales/es/community.ftl +++ b/locales/es/community.ftl @@ -35,7 +35,6 @@ community-events-header = Eventos community-meetup-header = Encuentra un meetup o una conferencia local community-meetup = Hay más de 90 Meetups y numerosas conferencias repartidas en más de 35 países. Los Rustáceos se reúnen periódicamente en los Grupos de Usuarios de Rust. Esos grupos son un modo perfecto de introducirte en la comunidad y una gran forma de socializar con otras personas con intereses similares. Las reuniones son generalmente informales y abiertas a todo el mundo. community-calendar = Ver el calendario -community-conference-lineup = Consultar el programa de conferencias de 2020 community-event-run-header = Organizar tu propio evento community-event-run =

      diff --git a/locales/fr/community.ftl b/locales/fr/community.ftl index d222d446..a7e3409e 100644 --- a/locales/fr/community.ftl +++ b/locales/fr/community.ftl @@ -22,7 +22,6 @@ community-events-header = Événements community-meetup-header = Trouver une rencontre locale ou une conférence community-meetup = Il y a plus de 90 rencontres et plusieurs conférences de part le monde sur plus de 35 pays. Les Rustacés se rencontrent périodiquement dans les groupes d’utilisateurs Rust. Ce sont d'excellents moyens d'entrer dans la communauté et un excellent moyen d'apprendre et de socialiser avec des gens avec un intérêt commun. Les rencontres sont généralement informelles et ouvertes à tous. community-calendar = Voir le calendrier -community-conference-lineup = Consulter le programme des conférences 2020 community-event-run-header = Organisez votre propre évènement community-event-run =

      diff --git a/locales/it/community.ftl b/locales/it/community.ftl index 166a4a3c..a3480b13 100644 --- a/locales/it/community.ftl +++ b/locales/it/community.ftl @@ -22,7 +22,6 @@ community-events-header = Eventi community-meetup-header = Cerca una conferenza o un meetup locale community-meetup = Ci sono oltre 90 Meetup e numerose conferenze sparse in 35 paesi di tutto il mondo. I "Rustacean" si incontrano periodicamente negli Rust User Group. I Rust User Group sono un modo perfetto per presentarsi alla community ed ancora meglio se si vuole imparare o anche solo socializzare con persone che condividono i propri interessi. Gli incontri sono solitamente eventi informali e aperti a tutti. community-calendar = Vai al Calendario -community-conference-lineup = Guarda dove si terranno le conferenze nel 2020 community-event-run-header = Organizza il tuo evento community-event-run =

      diff --git a/locales/ja/community.ftl b/locales/ja/community.ftl index 97ccc181..f0683934 100644 --- a/locales/ja/community.ftl +++ b/locales/ja/community.ftl @@ -22,7 +22,6 @@ community-events-header = イベント community-meetup-header = 近くのミートアップやカンファレンスを探す community-meetup = 世界35カ国以上で、90以上のミートアップや様々なカンファレンスが開催されており、RustaceansはRustユーザグループに定期的に集まります。それらはコミュニティへの導入として優れていて、関心の近い人々と学び交流することができる素晴らしい機会です。ミーティングは堅苦しいものではなく、誰にでも開かれています。 community-calendar = カレンダーを見る -community-conference-lineup = 2020年のカンファレンス一覧を確認する community-event-run-header = イベントを開催する community-event-run =

      diff --git a/locales/ko/community.ftl b/locales/ko/community.ftl index 655db29f..fe707b79 100644 --- a/locales/ko/community.ftl +++ b/locales/ko/community.ftl @@ -14,7 +14,6 @@ community-chat = Rust 개발, 일반적인 잡담은 여러 채팅 플랫폼에 community-teams-learn = 팀 더 알아보기 community-events-header = 행사 community-calendar = 일정표 보기 -community-conference-lineup = 2020 컴퍼런스 라인업 살펴보기 community-event-register = 행사 등록하기 community-rustfest-alt = Rustfest 참가자 community-irr-button = 웹 사이트 방문하기 diff --git a/locales/pl/community.ftl b/locales/pl/community.ftl index 6880bf17..0801b120 100644 --- a/locales/pl/community.ftl +++ b/locales/pl/community.ftl @@ -30,7 +30,6 @@ community-events-header = Wydarzenia community-meetup-header = Znajdź lokalne spotkanie lub konferencję community-meetup = Na tą chwilę na całym świecie organizowanych jest ponad 90 spotkań oraz kilka większych konferencji, mających miejsce w ponad 35 różnych krajach. Rustianie spotykają się ze sobą regularnie w ramach Grup Użytkowników Rusta. Grupy te są znakomitym sposobem na wdrożenie się w społeczność oraz świetną okazją do nauki oraz spędzania czasu z ludźmi o podobnych zainteresowaniach. Spotkania są zwykle nieformalne i otwarte dla wszystkich. community-calendar = Zobacz kalendarz -community-conference-lineup = Zobacz Listę Konferencji na rok 2020 community-event-run-header = Zorganizuj własne wydarzenie community-event-run =

      diff --git a/locales/pt-BR/community.ftl b/locales/pt-BR/community.ftl index 0e0b7b96..270b7b46 100644 --- a/locales/pt-BR/community.ftl +++ b/locales/pt-BR/community.ftl @@ -35,7 +35,6 @@ community-meetup = Existem mais de 90 encontros locais e conferências diversas em mais de 35 países. Rustaceans se encontram periodicamente em Encontros de Grupos Usuários. Essa é uma ótima introdução a comunidade, e um ótimo jeito de aprender e socializar com outras pessoas de interesses similares. Encontros locais geralmente são informais e aberto a todas as pessoas. community-calendar = Vejo o Calendário -community-conference-lineup = Confira as apresentações da conferência de 2020 community-event-run-header = Faça seu próprio evento community-event-run =

      diff --git a/locales/ru/community.ftl b/locales/ru/community.ftl index e030c173..41bf4ece 100644 --- a/locales/ru/community.ftl +++ b/locales/ru/community.ftl @@ -22,7 +22,6 @@ community-events-header = Мероприятия community-meetup-header = Найти встречу или конференцию community-meetup = Более чем в 35 странах проводится более 90 митапов и несколько конференций. Rustaceans периодически встречаются в Rust User Group. Они являются отличным местом для входа в сообщество и отличным способом учиться и общаться с другими людьми со схожими интересами. Встречи обычно неформальные и открыты для всех. community-calendar = Посмотреть календарь -community-conference-lineup = Программа конференций на 2020 год community-event-run-header = Запустите своё мероприятие community-event-run =

      diff --git a/locales/tr/community.ftl b/locales/tr/community.ftl index 27ba228d..23968532 100644 --- a/locales/tr/community.ftl +++ b/locales/tr/community.ftl @@ -19,7 +19,6 @@ community-events-header = Etkinlikler community-meetup-header = Yerel bir buluşma veya konferans bulun community-meetup = Dünya üzerinde 35'ten fazla ülkede çeşitli konferanslar ve 90'ın üzerinde buluşma düzenleniyor. Rustaceanlar, Rust Kullanıcı Grupları'nda belirli aralıklarla buluşuyor. Bu buluşmalar, benzer ilgi alanlarına sahip insanlarla buluşmak için harika bir yöntem olmakla birlikte Rust topluluğuna girmek için de mükemmel bir yöntem. Buluşmalar çoğunlukla samimi bir ortamda gerçekleşmekle birlikte herkese açıktır. community-calendar = Takvimi Göster -community-conference-lineup = 2020 Konferans Programına Göz Atın community-event-run-header = Kendi etkinliğinizi düzenleyin community-event-run =

      diff --git a/locales/zh-CN/community.ftl b/locales/zh-CN/community.ftl index caeb5f53..14b0abaf 100644 --- a/locales/zh-CN/community.ftl +++ b/locales/zh-CN/community.ftl @@ -22,7 +22,6 @@ community-events-header = 活动 community-meetup-header = 参与线下聚会或会议 community-meetup = 我们有超过 90 个聚会和几个世界级的会议,遍布 35 个国家。Rust 爱好者会在 Rust 用户论坛定期举办聚会。它们是您进入 Rust 社区的最佳入口,也是一个和相同爱好者进行学习和交流的绝佳途径。聚会对每个人来说都会带来丰富和开放的信息。 community-calendar = 查看日程 -community-conference-lineup = 查看 2020 会议阵容 community-event-run-header = 举办您的活动 community-event-run =

      diff --git a/locales/zh-TW/community.ftl b/locales/zh-TW/community.ftl index b92bca67..2277633b 100644 --- a/locales/zh-TW/community.ftl +++ b/locales/zh-TW/community.ftl @@ -22,7 +22,6 @@ community-events-header = 活動 community-meetup-header = 各地聚會或研討會 community-meetup = 在全球超過 35 個國家有超過 90 個聚會與數個研討會。Rust 愛好者們(Rustaceans) 會定期在 Rust 使用者群組聚會。這些活動可以幫助您進入社群、學習還有和同好交流,聚會通常是非正式的開放活動。 community-calendar = 查看行事曆 -community-conference-lineup = 2020 研討會時間表 community-event-run-header = 自己辦活動! community-event-run = 隨著 Rust 的發展,我們樂於幫忙大家推動自己的地區性活動。從學習、實作、駭客、聚會以至研討會,Rust 活動團隊都已準備好為您提供支援。 community-event-register = 登記您的活動 diff --git a/templates/community/index.html.hbs b/templates/community/index.html.hbs index d6623a6b..c5ff8c6d 100644 --- a/templates/community/index.html.hbs +++ b/templates/community/index.html.hbs @@ -153,10 +153,6 @@ {{fluent "community-calendar"}}

    • -
    • - {{fluent "community-conference-lineup"}} -
    From 7194304093c9077144c7a12cc3a3b8ee8c16e5ed Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 May 2024 23:29:04 +0200 Subject: [PATCH 19/29] Update to handlebars v5 --- Cargo.lock | 54 +++++++++++++++++++++++++++++++--------------------- Cargo.toml | 10 +++++----- src/i18n.rs | 45 +++++++++++++++++++++++++------------------ src/teams.rs | 19 ++++++++++++------ 4 files changed, 77 insertions(+), 51 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 441d9d2e..640bf782 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -604,7 +604,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.12", "indexmap 2.2.6", "slab", "tokio", @@ -614,9 +614,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", @@ -628,9 +628,9 @@ dependencies = [ [[package]] name = "handlebars-fluent" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf49bf85c4a60ff66b4627602fbbabe16458ec5bdd8294ed7a26c83173e2485" +checksum = "7bb39cffd370c96a5de57ec5242f385bfb7d52facd774881d81e89621ce7d87e" dependencies = [ "fluent", "fluent-bundle 0.11.0", @@ -671,6 +671,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -678,7 +689,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", "pin-project-lite", ] @@ -705,7 +716,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.12", "http-body", "httparse", "httpdate", @@ -978,16 +989,15 @@ dependencies = [ [[package]] name = "multer" -version = "2.1.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" +checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" dependencies = [ "bytes", "encoding_rs", "futures-util", - "http", + "http 1.1.0", "httparse", - "log", "memchr", "mime", "spin", @@ -1442,7 +1452,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.12", "http-body", "hyper", "hyper-tls", @@ -1472,9 +1482,9 @@ dependencies = [ [[package]] name = "rocket" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e7bb57ccb26670d73b6a47396c83139447b9e7878cab627fdfe9ea8da489150" +checksum = "a516907296a31df7dc04310e7043b61d71954d703b603cc6867a026d7e72d73f" dependencies = [ "async-stream", "async-trait", @@ -1509,9 +1519,9 @@ dependencies = [ [[package]] name = "rocket_codegen" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2238066abf75f21be6cd7dc1a09d5414a671f4246e384e49fe3f8a4936bd04c" +checksum = "575d32d7ec1a9770108c879fc7c47815a80073f96ca07ff9525a94fcede1dd46" dependencies = [ "devise", "glob", @@ -1526,9 +1536,9 @@ dependencies = [ [[package]] name = "rocket_dyn_templates" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04bfc006e547e4f72b760ab861f5943b688aed8a82c4977b5500c98f5d17dbfa" +checksum = "5bbab919c9e67df3f7ac6624a32ef897df4cd61c0969f4d66f3ced0534660d7a" dependencies = [ "handlebars", "normpath", @@ -1539,14 +1549,14 @@ dependencies = [ [[package]] name = "rocket_http" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a1663694d059fe5f943ea5481363e48050acedd241d46deb2e27f71110389e" +checksum = "e274915a20ee3065f611c044bd63c40757396b6dbc057d6046aec27f14f882b9" dependencies = [ "cookie", "either", "futures", - "http", + "http 0.2.12", "hyper", "indexmap 2.2.6", "log", @@ -2682,7 +2692,7 @@ name = "www-rust-lang-org" version = "0.1.0" dependencies = [ "fluent", - "fluent-bundle 0.11.0", + "fluent-bundle 0.15.3", "fluent-locale", "fluent-syntax 0.11.1", "handlebars", diff --git a/Cargo.toml b/Cargo.toml index 537ee35b..dbc6e2c0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,14 +7,14 @@ edition = "2018" [dependencies] lazy_static = "1.2.0" fluent = "0.16" -fluent-bundle = "0.11.0" +fluent-bundle = "0.15.0" fluent-syntax = "0.11.0" fluent-locale = "0.10.1" -handlebars-fluent = "0.3.1" +handlebars-fluent = "0.4.0" rand = "0.8" regex = "1" -rocket = "0.5.0" -rocket_dyn_templates = { version = "0.1.0", features = ["handlebars"] } +rocket = "0.5.1" +rocket_dyn_templates = { version = "0.2.0", features = ["handlebars"] } serde = { version = "1.0", features = ["derive"] } serde_yaml = "0.8.17" sass-rs = "0.2.1" @@ -22,6 +22,6 @@ reqwest = { version = "0.11.4", features = ["json"] } toml = "0.5" serde_json = "1.0" rust_team_data = { git = "https://github.com/rust-lang/team" } -handlebars = "4.3.0" +handlebars = "5.1.0" siphasher = "0.3.6" percent-encoding = "2.1.0" diff --git a/src/i18n.rs b/src/i18n.rs index f2153372..eb335ebb 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -1,5 +1,5 @@ use handlebars::{ - Context, Handlebars, Helper, HelperDef, HelperResult, Output, RenderContext, RenderError, + Context, Handlebars, Helper, HelperDef, HelperResult, Output, RenderContext, RenderErrorReason, }; use rocket::request::FromParam; @@ -149,32 +149,38 @@ impl TeamHelperParam { impl HelperDef for TeamHelper { fn call<'reg: 'rc, 'rc>( &self, - h: &Helper<'reg, 'rc>, + h: &Helper<'rc>, _: &'reg Handlebars, context: &'rc Context, rcx: &mut RenderContext<'reg, 'rc>, out: &mut dyn Output, ) -> HelperResult { let Some(name) = h.param(0) else { - return Err(RenderError::new( + return Err(RenderErrorReason::ParamNotFoundForIndex( "{{team-text}} must have at least two parameters", - )); + 0, + ) + .into()); }; let Some(name) = name.relative_path() else { - return Err(RenderError::new( + return Err(RenderErrorReason::InvalidParamType( "{{team-text}} takes only identifier parameters", - )); + ) + .into()); }; let Some(id) = h.param(1) else { - return Err(RenderError::new( + return Err(RenderErrorReason::ParamNotFoundForIndex( "{{team-text}} must have at least two parameters", - )); + 1, + ) + .into()); }; let Some(id) = id.relative_path() else { - return Err(RenderError::new( + return Err(RenderErrorReason::InvalidParamType( "{{team-text}} takes only identifier parameters", - )); + ) + .into()); }; let param = match id.as_str() { @@ -182,22 +188,25 @@ impl HelperDef for TeamHelper { "description" => TeamHelperParam::Description, "role" => { let Some(role_id) = h.param(2) else { - return Err(RenderError::new( + return Err(RenderErrorReason::ParamNotFoundForIndex( "{{team-text}} requires a third parameter for the role id", - )); + 2, + ) + .into()); }; TeamHelperParam::Role(role_id.value().as_str().unwrap().to_owned()) } unrecognized => { - return Err(RenderError::new(format!( + return Err(RenderErrorReason::Other(format!( "unrecognized {{{{team-text}}}} param {unrecognized:?}", - ))); + )) + .into()); } }; let team = rcx .evaluate(context, name) - .map_err(|e| RenderError::from_error(&format!("Cannot find team {}", name), e))?; + .map_err(|e| RenderErrorReason::NestedError(Box::new(e)))?; let lang = context .data() .get("lang") @@ -210,18 +219,18 @@ impl HelperDef for TeamHelper { if lang == "en-US" { let english = param.english(team.as_json()); out.write(english) - .map_err(|e| RenderError::from_error("failed to render English team data", e))?; + .map_err(|e| RenderErrorReason::NestedError(Box::new(e)))?; } else if let Some(value) = self.i18n.lookup_no_default_fallback( &lang.parse().expect("language must be valid"), ¶m.fluent_id(team_name), None, ) { out.write(&value) - .map_err(|e| RenderError::from_error("failed to render translated team data", e))?; + .map_err(|e| RenderErrorReason::NestedError(Box::new(e)))?; } else { let english = param.english(team.as_json()); out.write(english) - .map_err(|e| RenderError::from_error("failed to render", e))?; + .map_err(|e| RenderErrorReason::NestedError(Box::new(e)))?; } Ok(()) } diff --git a/src/teams.rs b/src/teams.rs index 142334ba..dd22566f 100644 --- a/src/teams.rs +++ b/src/teams.rs @@ -1,4 +1,6 @@ -use handlebars::{Context, Handlebars, Helper, HelperResult, Output, RenderContext, RenderError}; +use handlebars::{ + Context, Handlebars, Helper, HelperResult, Output, RenderContext, RenderErrorReason, +}; use percent_encoding::{utf8_percent_encode, AsciiSet, NON_ALPHANUMERIC}; use rust_team_data::v1::{Team, TeamKind, Teams, BASE_URL}; use std::cmp::Reverse; @@ -212,16 +214,21 @@ pub fn encode_zulip_stream( let zulip_stream = if let Some(p) = h.param(0) { p.value() } else { - return Err(RenderError::new( + return Err(RenderErrorReason::ParamNotFoundForIndex( "{{encode-zulip-stream takes 1 parameter}}", - )); + 0, + ) + .into()); }; let zulip_stream = if let Some(s) = zulip_stream.as_str() { s } else { - return Err(RenderError::new( - "{{encode-zulip-stream takes a string parameter}}", - )); + return Err(RenderErrorReason::ParamTypeMismatchForName( + "encode-zulip-stream", + "0".into(), + "string".into(), + ) + .into()); }; // https://github.com/zulip/zulip/blob/159641bab8c248f5b72a4e736462fb0b48e7fa24/static/js/hash_util.js#L20-L25 From 2c7dfee5bf2f451eccd220ba9255e199f2ac5ee5 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 May 2024 23:29:04 +0200 Subject: [PATCH 20/29] Fix missing component --- templates/learn/get-started.html.hbs | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/learn/get-started.html.hbs b/templates/learn/get-started.html.hbs index f24678f9..4fd02433 100644 --- a/templates/learn/get-started.html.hbs +++ b/templates/learn/get-started.html.hbs @@ -137,6 +137,5 @@ fn main() { src="/static/images/ferris.gif" />
    -{{> components/tools/install-script }} {{/inline}} {{~> (lookup this "parent")~}} From 81b11c74ce81f81708d9cf55f389dfb67d4eff95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 00:27:35 +0000 Subject: [PATCH 21/29] Bump the all group across 1 directory with 5 updates Bumps the all group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [serde_yaml](https://github.com/dtolnay/serde-yaml) | `0.8.26` | `0.9.34+deprecated` | | [reqwest](https://github.com/seanmonstar/reqwest) | `0.11.27` | `0.12.4` | | [toml](https://github.com/toml-rs/toml) | `0.5.11` | `0.8.13` | | [rust_team_data](https://github.com/rust-lang/team) | ``4166119`` | ``a2fda92`` | | [siphasher](https://github.com/jedisct1/rust-siphash) | `0.3.11` | `1.0.1` | Updates `serde_yaml` from 0.8.26 to 0.9.34+deprecated - [Release notes](https://github.com/dtolnay/serde-yaml/releases) - [Commits](https://github.com/dtolnay/serde-yaml/compare/0.8.26...0.9.34) Updates `reqwest` from 0.11.27 to 0.12.4 - [Release notes](https://github.com/seanmonstar/reqwest/releases) - [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md) - [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.27...v0.12.4) Updates `toml` from 0.5.11 to 0.8.13 - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.5.11...toml-v0.8.13) Updates `rust_team_data` from `4166119` to `a2fda92` - [Commits](https://github.com/rust-lang/team/compare/41661195e980cfc9b5aa348acd86d7bf0ad0d932...a2fda920de6a37ab1466158b0262bddbd2d2831a) Updates `siphasher` from 0.3.11 to 1.0.1 - [Commits](https://github.com/jedisct1/rust-siphash/compare/0.3.11...1.0.1) --- updated-dependencies: - dependency-name: serde_yaml dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: reqwest dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: rust_team_data dependency-type: direct:production dependency-group: all - dependency-name: siphasher dependency-type: direct:production update-type: version-update:semver-major dependency-group: all ... Signed-off-by: dependabot[bot] --- Cargo.lock | 258 ++++++++++++++++++++++++++++++++++++++--------------- Cargo.toml | 8 +- 2 files changed, 188 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 640bf782..6fbeb545 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -74,6 +74,12 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "autocfg" version = "1.3.0" @@ -97,9 +103,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.7" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "binascii" @@ -334,7 +340,7 @@ dependencies = [ "atomic 0.6.0", "pear", "serde", - "toml 0.8.13", + "toml", "uncased", "version_check", ] @@ -605,7 +611,26 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap", "slab", "tokio", "tokio-util", @@ -642,12 +667,6 @@ dependencies = [ "unic-langid 0.8.0", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.14.5" @@ -693,6 +712,29 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +dependencies = [ + "bytes", + "futures-core", + "http 1.1.0", + "http-body 1.0.0", + "pin-project-lite", +] + [[package]] name = "httparse" version = "1.8.0" @@ -715,9 +757,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.3.26", "http 0.2.12", - "http-body", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -729,37 +771,70 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper", + "http-body-util", + "hyper 1.3.1", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", ] [[package]] -name = "idna" -version = "0.5.0" +name = "hyper-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", + "hyper 1.3.1", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] -name = "indexmap" -version = "1.9.3" +name = "idna" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -769,7 +844,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown", "serde", ] @@ -902,12 +977,6 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -1240,6 +1309,26 @@ dependencies = [ "sha2", ] +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + [[package]] name = "pin-project-lite" version = "0.2.14" @@ -1442,20 +1531,22 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ "base64", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2", - "http 0.2.12", - "http-body", - "hyper", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.3.1", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1494,7 +1585,7 @@ dependencies = [ "either", "figment", "futures", - "indexmap 2.2.6", + "indexmap", "log", "memchr", "multer", @@ -1525,7 +1616,7 @@ checksum = "575d32d7ec1a9770108c879fc7c47815a80073f96ca07ff9525a94fcede1dd46" dependencies = [ "devise", "glob", - "indexmap 2.2.6", + "indexmap", "proc-macro2", "quote", "rocket_http", @@ -1557,8 +1648,8 @@ dependencies = [ "either", "futures", "http 0.2.12", - "hyper", - "indexmap 2.2.6", + "hyper 0.14.28", + "indexmap", "log", "memchr", "pear", @@ -1577,9 +1668,9 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#41661195e980cfc9b5aa348acd86d7bf0ad0d932" +source = "git+https://github.com/rust-lang/team#a2fda920de6a37ab1466158b0262bddbd2d2831a" dependencies = [ - "indexmap 2.2.6", + "indexmap", "serde", ] @@ -1610,13 +1701,20 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ "base64", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "rustversion" version = "1.0.17" @@ -1773,14 +1871,15 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.26" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 1.9.3", + "indexmap", + "itoa", "ryu", "serde", - "yaml-rust", + "unsafe-libyaml", ] [[package]] @@ -1814,9 +1913,9 @@ dependencies = [ [[package]] name = "siphasher" -version = "0.3.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -2088,15 +2187,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.8.13" @@ -2124,13 +2214,35 @@ version = "0.22.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" dependencies = [ - "indexmap 2.2.6", + "indexmap", "serde", "serde_spanned", "toml_datetime", "winnow", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -2143,6 +2255,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2359,6 +2472,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "url" version = "2.5.0" @@ -2679,9 +2798,9 @@ dependencies = [ [[package]] name = "winreg" -version = "0.50.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ "cfg-if", "windows-sys 0.48.0", @@ -2710,16 +2829,7 @@ dependencies = [ "serde_json", "serde_yaml", "siphasher", - "toml 0.5.11", -] - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", + "toml", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index dbc6e2c0..8d62c00b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,12 +16,12 @@ regex = "1" rocket = "0.5.1" rocket_dyn_templates = { version = "0.2.0", features = ["handlebars"] } serde = { version = "1.0", features = ["derive"] } -serde_yaml = "0.8.17" +serde_yaml = "0.9.34" sass-rs = "0.2.1" -reqwest = { version = "0.11.4", features = ["json"] } -toml = "0.5" +reqwest = { version = "0.12.4", features = ["json"] } +toml = "0.8" serde_json = "1.0" rust_team_data = { git = "https://github.com/rust-lang/team" } handlebars = "5.1.0" -siphasher = "0.3.6" +siphasher = "1.0.1" percent-encoding = "2.1.0" From 04fe30b98512f887bd87cb3e8275d415bd30058e Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Fri, 24 May 2024 09:26:16 -0400 Subject: [PATCH 22/29] Add content about ecosystem security help for crate authors Fixes #1974. --- locales/core.ftl | 5 +++++ locales/en-US/security.ftl | 13 +++++++++++++ templates/policies/security.html.hbs | 10 ++++++++++ 3 files changed, 28 insertions(+) diff --git a/locales/core.ftl b/locales/core.ftl index 1eca7b1a..dadb1801 100644 --- a/locales/core.ftl +++ b/locales/core.ftl @@ -24,3 +24,8 @@ rustlang-security-announcements+subscribe@googlegroups.com -distros-openwall-email-anchor = distros@openwall + +## Security initiative links +-foundation-security-initiative-href = + https://foundation.rust-lang.org/tags/security%20initiative/ +-contact-at-rustfoundation-org-anchor = { EMAIL("contact@rustfoundation.org") } \ No newline at end of file diff --git a/locales/en-US/security.ftl b/locales/en-US/security.ftl index 96d0a572..e7ac529e 100644 --- a/locales/en-US/security.ftl +++ b/locales/en-US/security.ftl @@ -39,4 +39,17 @@ security-receiving-description =

    The best way to receive all the security announcements is to subscribe to the Rust security announcements mailing list (alternatively by sending an email to { -rustlang-security-announcements-subscribe-anchor }). The mailing list is very low traffic, and it receives the public notifications the moment the embargo is lifted.

    We will announce vulnerabilities 72 hours before the embargo is lifted to { -distros-openwall-email-anchor }, so that Linux distributions can update their packages.

    +security-crates-heading = Ecosystem security help for crate authors +security-crates-description = +

    Security is a value important to the Rust ecosystem as a whole, not just to the Rust language. If you are a crate author and you have received a high impact/severity security bug report for your crate, the Rust Foundation and the Rust Project are available to help manage the situation. The Rust Project or the Rust Foundation may also be the ones reaching out to you, if they have been informed of a security issue.

    +

    As part of its Security Initiative, the Rust Foundation:

    +
      +
    • Employs security engineers who can help assessing the problem, developing mitigations, and estimating impact.
    • +
    • Has a network of member organizations that can help with testing resources and also employ security experts who can help with assessing and fixing issues.
    • +
    • Employs communications staff who can manage publishing notifications and fielding inquiries.
    • +
    • Has contacts with government agencies tasked with cybersecurity protections who may have information on exploitation or impact of a security problem.
    • +
    +

    The Rust Project can coordinate actions among other parts of the ecosystem that may need to be updated to address a fix.

    +

    Please reach out to { -contact-at-rustfoundation-org-anchor } if either the Rust Project or the Rust Foundation can help you by providing security support in the areas listed above or in another way! These are just a few examples of the kind of help available to crate authors facing security challenges.

    + security-pgp-key-heading = Plaintext PGP key diff --git a/templates/policies/security.html.hbs b/templates/policies/security.html.hbs index ebd07225..b0ee3aef 100644 --- a/templates/policies/security.html.hbs +++ b/templates/policies/security.html.hbs @@ -50,6 +50,16 @@ +
    +
    +
    +

    {{fluent "security-crates-heading"}}

    +
    +
    + {{fluent "security-crates-description"}} +
    +
    +
    From 8bf7483baf2725323f6fa9050cd0d0b9b7f318a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 20:07:47 +0000 Subject: [PATCH 23/29] Bump the all group with 2 updates Bumps the all group with 2 updates: [serde](https://github.com/serde-rs/serde) and [rust_team_data](https://github.com/rust-lang/team). Updates `serde` from 1.0.202 to 1.0.203 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.202...v1.0.203) Updates `rust_team_data` from `a2fda92` to `5046849` - [Commits](https://github.com/rust-lang/team/compare/a2fda920de6a37ab1466158b0262bddbd2d2831a...504684952d33d8494a7aa120a9304f74d1f0796f) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: rust_team_data dependency-type: direct:production dependency-group: all ... Signed-off-by: dependabot[bot] --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6fbeb545..e76e5abc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1668,7 +1668,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#a2fda920de6a37ab1466158b0262bddbd2d2831a" +source = "git+https://github.com/rust-lang/team#504684952d33d8494a7aa120a9304f74d1f0796f" dependencies = [ "indexmap", "serde", @@ -1819,18 +1819,18 @@ checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" [[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", From 4c6b24a2bc7581488e55819e9c09dae04d58d240 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 2 Jun 2024 18:49:23 +0200 Subject: [PATCH 24/29] Replace dead event registration link --- locales/de/community.ftl | 1 - locales/en-US/community.ftl | 1 - locales/es/community.ftl | 1 - locales/fa/community.ftl | 1 - locales/fr/community.ftl | 1 - locales/it/community.ftl | 1 - locales/ja/community.ftl | 1 - locales/ko/community.ftl | 1 - locales/pl/community.ftl | 1 - locales/pt-BR/community.ftl | 1 - locales/ru/community.ftl | 1 - locales/tr/community.ftl | 1 - locales/zh-CN/community.ftl | 1 - locales/zh-TW/community.ftl | 1 - templates/community/index.html.hbs | 3 +-- 15 files changed, 1 insertion(+), 16 deletions(-) diff --git a/locales/de/community.ftl b/locales/de/community.ftl index ee87c9a1..73062de0 100644 --- a/locales/de/community.ftl +++ b/locales/de/community.ftl @@ -12,7 +12,6 @@ community-meetup-header = Finde ein Treffen order eine Konferenz in deiner Nähe community-meetup = Es gibt mehr als 90 Treffen und einige Konferenzen in über 35 Ländern. Rust User Groups sind regelmäßige Treffen und ein guter Weg, andere Rust-Interessierte kennen zu lernen. Typischerweise sind diese Treffen informell und für alle offen. community-calendar = Kalender ansehen community-event-run-header = Stelle dein eigenes Event auf die Beine -community-event-register = Trage dein Event ein community-rustfest-alt = Rustfest Teilnehmer community-irr-header = Rusts Reichweite vergrößern community-irr-button = Besuche die Webseite diff --git a/locales/en-US/community.ftl b/locales/en-US/community.ftl index 346ab623..feba34b4 100644 --- a/locales/en-US/community.ftl +++ b/locales/en-US/community.ftl @@ -48,7 +48,6 @@ community-event-run = Registering your event helps us to keep track of our community efforts and allows us to connect you to speakers or other members in your area.

    -community-event-register = Register your event community-rustfest-alt = Rustfest participants community-irr-header = Increasing Rust’s Reach diff --git a/locales/es/community.ftl b/locales/es/community.ftl index 67329475..2d0e2ccd 100644 --- a/locales/es/community.ftl +++ b/locales/es/community.ftl @@ -45,7 +45,6 @@ community-event-run = Registrar tu evento nos ayuda a identificar los esfuerzos de nuestra comunidad y nos permite ponerte en contacto con expertos u otros miembros en tu zona.

    -community-event-register = Registra tu evento community-rustfest-alt = Participantes de Rustfest community-irr-header = Increasing Rust's Reach community-irr = Increasing Rust's Reach (Aumentando el alcance de Rust) es un programa que une a miembros de todas las áreas del equipo de Rust con individuos que están poco representados en la comunidad Rust y la industria tecnológica, para una colaboración de tres (3) meses, desde mediados de Mayo hasta mediados de Agosto. Cada miembro asociado se compromete a trabajar en un proyecto de Rust de 3 a 5 horas por semana. diff --git a/locales/fa/community.ftl b/locales/fa/community.ftl index f65931ff..c589837d 100644 --- a/locales/fa/community.ftl +++ b/locales/fa/community.ftl @@ -13,7 +13,6 @@ community-teams-learn = در مورد تیم ها بیشتر بدانید community-events-header = رویداد‌ها community-calendar = مشاهده تقویم community-event-run-header = رویداد خود را برگزار کنید -community-event-register = رویداد خود را ثبت کنید community-rustfest-alt = شرکت کنندگان Rustfest community-irr-button = از وب سایت بازدید کنید community-standards-header = استانداردهای جامعه diff --git a/locales/fr/community.ftl b/locales/fr/community.ftl index a7e3409e..4dd96293 100644 --- a/locales/fr/community.ftl +++ b/locales/fr/community.ftl @@ -31,7 +31,6 @@ community-event-run =

    Enregistrer votre évènement nous aide à garder la trace des efforts de notre communauté et nous permet de vous mettre en contact avec des présentateurs et d'autres membres autour de vous.

    -community-event-register = Enregistrez votre événement community-rustfest-alt = Participants à la Rustfest community-irr-header = Faire Connaître Rust community-irr = Increasing Rust’s Reach (Étendre la portée de Rust) est un programme qui associe les membres des équipes Rust de toutes les parties du projet avec des individus qui sont sous-représentés dans la communauté Rust et l'industrie des technologies pour un partenariat de trois (3) mois, de mi-Mai à mi-Août. Chaque partenariat s'engage pour 3 à 5 heures par semaine sur un projet Rust. diff --git a/locales/it/community.ftl b/locales/it/community.ftl index a3480b13..5fab9f1c 100644 --- a/locales/it/community.ftl +++ b/locales/it/community.ftl @@ -31,7 +31,6 @@ community-event-run =

    Registrando il tuo evento ci aiuterai a tenere traccia delle iniziative dell'intera community, permettendoci di metterti in contatto con speaker o altri membri nella tua zona.

    -community-event-register = Registra il tuo evento community-rustfest-alt = Partecipanti al RustFest community-irr-header = Increasing Rust's Reach community-irr = "Increasing Rust's Reach" è un programma volto a far incontrare componenti del team Rust impegnati in varie parti del progetto, con membri sottorappresentati nella community di Rust e aziende del settore, per una partnership di tre (3) mesi, da metà maggio a metà agosto. L'accordo di partnership è rappresentato da circa 3-5 ore settimanali allocate su un progetto Rust. diff --git a/locales/ja/community.ftl b/locales/ja/community.ftl index f0683934..7ae86baa 100644 --- a/locales/ja/community.ftl +++ b/locales/ja/community.ftl @@ -30,7 +30,6 @@ community-event-run =

    さらに開催するイベントを登録いただくことで、私たちはコミュニティとしての取り組みを把握することができるようになり、あなたをその地域にいるスピーカーや他のメンバーと繋げることができるでしょう

    -community-event-register = イベントを登録する community-rustfest-alt = Rustfest参加者 community-irr-header = Increasing Rust’s Reach community-irr = Increasing Rust’s Reachは5月中旬から8月中旬までの3ヶ月間のパートナーシップで、Rustプロジェクトのあらゆるチームメンバーと、Rustコミュニティやテクノロジー業界であまり知られていない個人を繋ぐことを目的としたプログラムです。それぞれのパートナーシップは、Rustプロジェクトに週に3~5時間取り組むことに合意しています。 diff --git a/locales/ko/community.ftl b/locales/ko/community.ftl index fe707b79..d4e2f080 100644 --- a/locales/ko/community.ftl +++ b/locales/ko/community.ftl @@ -14,7 +14,6 @@ community-chat = Rust 개발, 일반적인 잡담은 여러 채팅 플랫폼에 community-teams-learn = 팀 더 알아보기 community-events-header = 행사 community-calendar = 일정표 보기 -community-event-register = 행사 등록하기 community-rustfest-alt = Rustfest 참가자 community-irr-button = 웹 사이트 방문하기 community-standards-header = 커뮤니티 표준 diff --git a/locales/pl/community.ftl b/locales/pl/community.ftl index 0801b120..11fe5955 100644 --- a/locales/pl/community.ftl +++ b/locales/pl/community.ftl @@ -42,7 +42,6 @@ community-event-run = na rzecz rozwoju społeczności, oraz pozwoli nam połączyć Cię z innymi Rustianami w Twojej okolicy.

    -community-event-register = Zajerestruj swoje wydarzenie community-rustfest-alt = Uczestnicy Rustfest community-irr-header = Zwiększanie Zasięgu Rusta community-irr = Zwiększanie Zasięgu Rusta to program, który paruje członków rozmaitych zespołów projektu Rust z osobami, które są niedostatecznie reprezentowane w ramach społeczności Rusta i szerzej w ramach przemysłu informatycznego. W ramach programu zawiązywana jest tymczasowa współpraca między osobami na czas trzech (3) miesięcy, od maja do sierpnia. Oczekiwany czas poświęcony na współpracę to od 3 do 5 godzin tygodniowo spędzone na pracy nad projektami w Ruście. diff --git a/locales/pt-BR/community.ftl b/locales/pt-BR/community.ftl index 270b7b46..7e5c46e0 100644 --- a/locales/pt-BR/community.ftl +++ b/locales/pt-BR/community.ftl @@ -43,7 +43,6 @@ community-event-run =

    Registrar seu evento nos ajuda a rastrear os esforços da nossa comunidade e nos permite lhe conectar com palestrantes ou outros membros da sua região.

    -community-event-register = Registre o seu evento community-rustfest-alt = Participantes do Rustfest community-irr-header = Increasing Rust’s Reach community-irr = Increasing Rust’s Reach é um programa onde membros de todas as partes do projeto são apresentados a membros poucos representados na comunidade Rust e na indústria de tecnologia, para uma parceria de três (3) meses, do meio de Maio até o meio de Agosto. Cada parceria se compromete a trabalhar de 3-5 horas por semana em um projeto Rust. diff --git a/locales/ru/community.ftl b/locales/ru/community.ftl index 41bf4ece..0be8edd8 100644 --- a/locales/ru/community.ftl +++ b/locales/ru/community.ftl @@ -32,7 +32,6 @@ community-event-run = Регистрация вашего мероприятия помогает нам отслеживать наши усилия в сообществе и позволяет нам связать вас со спикерами или другими участниками в вашем регионе.

    -community-event-register = Зарегистрировать событие community-rustfest-alt = Участники Rustfest community-irr-header = Увеличение доступности Rust community-irr = Увеличение доступности Rust - это программа, в которой участники всех команд в течении трёх (3) месяцев, с середины мая, по середину августа, работают в партнёрстве с лицами, недопредставленными в Rust сообществе и технической индустрии. Каждый партнёр соглашается уделять 3-5 часов в неделю для работы над Rust. diff --git a/locales/tr/community.ftl b/locales/tr/community.ftl index 23968532..6d25753f 100644 --- a/locales/tr/community.ftl +++ b/locales/tr/community.ftl @@ -28,7 +28,6 @@ community-event-run =

    Etkinliğinizi kaydetmeniz topluluğun emeğini takip etmemizi ve siz konuşmacıları bölgenizdeki diğer üyelerle buluşturmamızı sağlar.

    -community-event-register = Etkinliğinizi kaydedin community-rustfest-alt = Rustfest katılımcıları community-irr-header = Increasing Rust's Reach community-irr = Increasing Rust's Reach, mayıs ayının ortasından ağustos ayının ortasına kadar üç (3) aylık bir ortaklık için Rust toplumunda ve teknoloji endüstrisinde yeterince temsil edilmeyen bireylerle projenin tüm bölümlerinden Rust ekibi üyelerini eşleştiren bir programdır. Her bir ortaklık, bir Rust projesinde çalışmak üzere haftada 3-5 saatlik bir taahhüt vermeyi kabul eder. diff --git a/locales/zh-CN/community.ftl b/locales/zh-CN/community.ftl index 14b0abaf..b95eefff 100644 --- a/locales/zh-CN/community.ftl +++ b/locales/zh-CN/community.ftl @@ -32,7 +32,6 @@ community-event-run = 注册您的活动有助于我们持续跟踪社区的影响力, 并能让我们为您与当地的演讲者和其他成员建立联系。

    -community-event-register = 注册活动 community-rustfest-alt = Rustfest 参会者 community-irr-header = Rust 星火计划 community-irr = 「Rust 星火计划」是一项合作计划。在该计划中,来自 Rust 不同项目的团队成员将会联合 Rust 社区中通常不太活跃的个人和技术企业,从 5 月中旬持续到 8 月中旬,进行为期三个月的合作。每个参与者都必须承诺在合作项目上每周投入 3-5 小时。 diff --git a/locales/zh-TW/community.ftl b/locales/zh-TW/community.ftl index 2277633b..a5362b1d 100644 --- a/locales/zh-TW/community.ftl +++ b/locales/zh-TW/community.ftl @@ -24,7 +24,6 @@ community-meetup = 在全球超過 35 個國家有超過 90 個聚會與數個 community-calendar = 查看行事曆 community-event-run-header = 自己辦活動! community-event-run = 隨著 Rust 的發展,我們樂於幫忙大家推動自己的地區性活動。從學習、實作、駭客、聚會以至研討會,Rust 活動團隊都已準備好為您提供支援。 -community-event-register = 登記您的活動 community-rustfest-alt = Rustfest 參與者 community-irr-header = Rust 推廣計畫 community-irr = 「Rust 推廣計畫」媒合來自 Rust 專案中所有項目的團隊成員,以及 Rust 社群中未被關注的個人、技術企業,進行為期三個月,從五月中到八月中的合作計畫。每個合作夥伴皆承諾在一個 Rust 專案投入每週三到五小時的時間。 diff --git a/templates/community/index.html.hbs b/templates/community/index.html.hbs index c5ff8c6d..d6be2097 100644 --- a/templates/community/index.html.hbs +++ b/templates/community/index.html.hbs @@ -162,8 +162,7 @@
    From d5653701ce04d33ac45e9fb536745f927a3db235 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 2 Jun 2024 22:16:09 +0200 Subject: [PATCH 25/29] Add redirect for /governance/wgs --- src/redirect.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/redirect.rs b/src/redirect.rs index eca98204..10033468 100644 --- a/src/redirect.rs +++ b/src/redirect.rs @@ -35,6 +35,7 @@ static PAGE_REDIRECTS: &[(&str, &str)] = &[ ), // miscellaneous ("governance/teams", "governance#teams"), + ("governance/wgs", "governance#working-groups"), ]; static STATIC_FILES_REDIRECTS: &[(&str, &str)] = &[ From 6bb4ab35a96998d8425907ef44f05d81c83236ae Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 2 Jun 2024 21:12:39 +0200 Subject: [PATCH 26/29] Handle redirects more uniformly --- src/main.rs | 16 +++++----------- src/redirect.rs | 2 ++ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index a8667227..2975b898 100644 --- a/src/main.rs +++ b/src/main.rs @@ -223,7 +223,7 @@ async fn team( section: &str, team: &str, teams_cache: &Cache, -) -> Result> { +) -> Result { render_team(section, team, ENGLISH.into(), teams_cache).await } @@ -241,7 +241,7 @@ async fn team_locale( team: &str, locale: SupportedLocale, teams_cache: &Cache, -) -> Result> { +) -> Result { render_team(section, team, locale.0, teams_cache).await } @@ -440,7 +440,7 @@ async fn render_team( team: &str, lang: String, teams_cache: &Cache, -) -> Result> { +) -> Result { match teams::page_data(section, team, teams_cache).await { Ok(data) => { let page = "governance/group"; @@ -450,16 +450,10 @@ async fn render_team( } Err(err) => { if err.is::() { - match (section, team) { - // Old teams URLs - ("teams", "language-and-compiler") | ("teams", "operations") => { - Err(Ok(Redirect::temporary("/governance"))) - } - _ => Err(Err(Status::NotFound)), - } + Err(Status::NotFound) } else { eprintln!("error while loading the team page: {}", err); - Err(Err(Status::InternalServerError)) + Err(Status::InternalServerError) } } } diff --git a/src/redirect.rs b/src/redirect.rs index eca98204..b964103b 100644 --- a/src/redirect.rs +++ b/src/redirect.rs @@ -33,6 +33,8 @@ static PAGE_REDIRECTS: &[(&str, &str)] = &[ "governance/teams/crates-io", "governance/teams/dev-tools#team-crates-io", ), + ("governance/teams/language-and-compiler", "governance#teams"), + ("governance/teams/operations", "governance#teams"), // miscellaneous ("governance/teams", "governance#teams"), ]; From a4bce1b62236424fe482c9ea55f9359ebb3a32f7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 2 Jun 2024 21:12:39 +0200 Subject: [PATCH 27/29] Remove redundant 404 handlers --- src/main.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index a8667227..6aeab9d0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -151,16 +151,6 @@ fn baseurl(lang: &str) -> String { } } -#[get("/components/<_file..>", rank = 1)] -fn components(_file: PathBuf) -> Template { - not_found_locale(ENGLISH.into()) -} - -#[get("//components/<_file..>", rank = 11)] -fn components_locale(locale: SupportedLocale, _file: PathBuf) -> Template { - not_found_locale(locale.0) -} - #[get("/logos/", rank = 1)] async fn logos(file: PathBuf) -> Option { NamedFile::open(Path::new("static/logos").join(file)) @@ -521,14 +511,12 @@ async fn rocket() -> _ { files, robots_txt, logos, - components, index_locale, category_locale, governance_locale, team_locale, production_locale, subject_locale, - components_locale, redirect_bare_en_us, ], ) From 139b347a2a69418bc9547efca3cf654f53e98abd Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 2 Jun 2024 21:12:39 +0200 Subject: [PATCH 28/29] Fix broken redirects --- src/redirect.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/redirect.rs b/src/redirect.rs index eca98204..ce01da47 100644 --- a/src/redirect.rs +++ b/src/redirect.rs @@ -9,9 +9,12 @@ static PAGE_REDIRECTS: &[(&str, &str)] = &[ ("community.html", "community"), ("conduct.html", "policies/code-of-conduct"), ("contribute-bugs.html", "community"), - ("contribute-community.html", "governance/teams/community"), + ("contribute-community.html", "community"), ("contribute-compiler.html", "governance/teams/compiler"), - ("contribute-docs.html", "governance/teams/documentation"), + ( + "contribute-docs.html", + "governance/teams/dev-tools#team-rustdoc", + ), ("contribute-libs.html", "governance/teams/library"), ("contribute-tools.html", "governance/teams/dev-tools"), ("contribute.html", "community"), From 1801e3e70691445476144046d899ee16e43173a8 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 2 Jun 2024 21:12:39 +0200 Subject: [PATCH 29/29] Add manual testing checklist --- CONTRIBUTING.md | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 743a7d0d..ff276924 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,3 +29,108 @@ Before filing a PR to the site, please file an issue. This way we can ensure that the work you are doing meets the requirements of the site and will be very likely merged. If you file a PR before an issue, you will likely be asked to file an issue, or your PR may be closed outright. + +## Manual testing checklist + +Sometimes changes are made which could potentially affect any page, e.g. updating the templating library. +In that case it's necessary to manually check (almost) every page for obvious regressions before deploying the update. +To facilitate that, here's a list of links to the staging deployment. +Note that like all documentation, this list may become outdated over time. +So stay vigilant and update it if you notice something missing. + + +- https://www-staging.rust-lang.org/ + +- https://www-staging.rust-lang.org/community +- https://www-staging.rust-lang.org/learn +- https://www-staging.rust-lang.org/policies +- https://www-staging.rust-lang.org/production +- https://www-staging.rust-lang.org/tools +- https://www-staging.rust-lang.org/what + +- https://www-staging.rust-lang.org/governance + +- https://www-staging.rust-lang.org/governance/teams/leadership-council +- https://www-staging.rust-lang.org/governance/wgs/wg-async + +- https://www-staging.rust-lang.org/production/users + +- https://www-staging.rust-lang.org/learn/get-started +- https://www-staging.rust-lang.org/policies/code-of-conduct +- https://www-staging.rust-lang.org/policies/licenses +- https://www-staging.rust-lang.org/policies/security +- https://www-staging.rust-lang.org/tools/install +- https://www-staging.rust-lang.org/what/cli +- https://www-staging.rust-lang.org/what/embedded +- https://www-staging.rust-lang.org/what/networking +- https://www-staging.rust-lang.org/what/wasm + +- https://www-staging.rust-lang.org/static/images/rust-logo-blk.png + +- https://www-staging.rust-lang.org/robots.txt + +- https://www-staging.rust-lang.org/static/logos/cargo.png + +- https://www-staging.rust-lang.org/es + +- https://www-staging.rust-lang.org/es/community +- https://www-staging.rust-lang.org/es/learn +- https://www-staging.rust-lang.org/es/policies +- https://www-staging.rust-lang.org/es/production +- https://www-staging.rust-lang.org/es/tools +- https://www-staging.rust-lang.org/es/what + +- https://www-staging.rust-lang.org/es/governance + +- https://www-staging.rust-lang.org/es/governance/teams/leadership-council +- https://www-staging.rust-lang.org/es/governance/wgs/wg-async + +- https://www-staging.rust-lang.org/es/production/users + +- https://www-staging.rust-lang.org/es/learn/get-started +- https://www-staging.rust-lang.org/es/policies/code-of-conduct +- https://www-staging.rust-lang.org/es/policies/licenses +- https://www-staging.rust-lang.org/es/policies/security +- https://www-staging.rust-lang.org/es/tools/install +- https://www-staging.rust-lang.org/es/what/cli +- https://www-staging.rust-lang.org/es/what/embedded +- https://www-staging.rust-lang.org/es/what/networking +- https://www-staging.rust-lang.org/es/what/wasm + +- https://www-staging.rust-lang.org/en-US + + +- https://www-staging.rust-lang.org/pdfs/Rust-npm-Whitepaper.pdf +- https://www-staging.rust-lang.org/pdfs/Rust-Tilde-Whitepaper.pdf + +- https://www-staging.rust-lang.org/other-installers.html +- https://www-staging.rust-lang.org/policies/privacy +- https://www-staging.rust-lang.org/policies/media-guide +- https://www-staging.rust-lang.org/sponsors + +- https://www-staging.rust-lang.org/community.html +- https://www-staging.rust-lang.org/conduct.html +- https://www-staging.rust-lang.org/contribute-bugs.html +- https://www-staging.rust-lang.org/contribute-community.html +- https://www-staging.rust-lang.org/contribute-compiler.html +- https://www-staging.rust-lang.org/contribute-docs.html +- https://www-staging.rust-lang.org/contribute-libs.html +- https://www-staging.rust-lang.org/contribute-tools.html +- https://www-staging.rust-lang.org/contribute.html +- https://www-staging.rust-lang.org/documentation.html +- https://www-staging.rust-lang.org/downloads.html +- https://www-staging.rust-lang.org/friends.html +- https://www-staging.rust-lang.org/index.html +- https://www-staging.rust-lang.org/install.html +- https://www-staging.rust-lang.org/legal.html +- https://www-staging.rust-lang.org/security.html +- https://www-staging.rust-lang.org/team.html +- https://www-staging.rust-lang.org/user-groups.html +- https://www-staging.rust-lang.org/governance/teams/release +- https://www-staging.rust-lang.org/governance/teams/crates-io +- https://www-staging.rust-lang.org/governance/teams +- https://www-staging.rust-lang.org/governance/wgs + +- https://www-staging.rust-lang.org/es-ES +- https://www-staging.rust-lang.org/es-ES/contribute-compiler.html +- https://www-staging.rust-lang.org/es-ES/governance/teams