diff --git a/website/crowdin.yml b/website/crowdin.yml new file mode 100644 index 0000000..66360ac --- /dev/null +++ b/website/crowdin.yml @@ -0,0 +1,13 @@ +project_id: '502518' +api_token_env: CROWDIN_PERSONAL_TOKEN +preserve_hierarchy: true +files: + # JSON translation files + - source: /i18n/en/**/* + translation: /i18n/%two_letters_code%/**/%original_file_name% + # Docs Markdown files + - source: /docs/**/* + translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name% + # Blog Markdown files + # - source: /blog/**/* + # translation: /i18n/%two_letters_code%/docusaurus-plugin-content-blog/**/%original_file_name% \ No newline at end of file diff --git a/website/docs/intro.md b/website/docs/intro.md index 2b6095b..8153537 100644 --- a/website/docs/intro.md +++ b/website/docs/intro.md @@ -4,6 +4,12 @@ sidebar_position: 1 # Documentation Intro +:::caution + +This documentation is for the Alpha version of Matrix-Veles. Veles may be unstable and weird. + +::: + So you are interested in Veles, that's great! And actually you came to exactly the right place. diff --git a/website/docs/tutorial-basics/install.md b/website/docs/tutorial-basics/install.md index feeced5..696e315 100644 --- a/website/docs/tutorial-basics/install.md +++ b/website/docs/tutorial-basics/install.md @@ -4,6 +4,12 @@ sidebar_position: 1 # Installing Veles +:::caution + +This documentation is for the Alpha version of Matrix-Veles. Veles may be unstable and weird. + +::: + :::info Software-Recommendations Whilst Veles should work on Linux, Windows and macOS, **we strongly recommend you use Linux** as this is what diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 6f4b89b..0308906 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -15,6 +15,10 @@ const config = { favicon: 'img/favicon.ico', organizationName: 'Unkn0wnCat', projectName: 'matrix-veles', + i18n: { + defaultLocale: "en", + locales: ["en", "de"] + }, presets: [ [ @@ -56,6 +60,10 @@ const config = { label: 'Documentation', }, //{to: '/blog', label: 'Blog', position: 'left'}, + { + type: 'localeDropdown', + position: 'right', + }, { href: 'https://github.com/Unkn0wnCat/matrix-veles', label: 'GitHub', diff --git a/website/i18n/de/code.json b/website/i18n/de/code.json new file mode 100644 index 0000000..6a05282 --- /dev/null +++ b/website/i18n/de/code.json @@ -0,0 +1,260 @@ +{ + "theme.ErrorPageContent.title": { + "message": "Diese Seite ist abgestürzt.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Noch einmal versuchen", + "description": "The label of the button to try again when the page crashed" + }, + "theme.NotFound.title": { + "message": "Seite nicht gefunden", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "Wir konnten leider nicht finden, wonach du suchst.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Bitte kontaktieren Sie den Besitzer der Seite, die Sie mit der ursprünglichen URL verlinkt hat, und teilen Sie ihm mit, dass der Link nicht mehr funktioniert.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Zurück nach oben", + "description": "The ARIA label for the back to top button" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Schließen", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.archive.title": { + "message": "Archiv", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archiv", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Navigation der Blog-Listenseite", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Neuere Einträge", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Ältere Einträge", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Eine Min. Lesezeit|{readingTime} Min. Lesezeit", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.post.readMoreLabel": { + "message": "Erfahre mehr über {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readMore": { + "message": "Weiterlesen", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Navigation der Blogpost Seite", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Neuerer Beitrag", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Älterer Beitrag", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Aktuelle Blog-Beiträge Navigation", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.blog.post.plurals": { + "message": "Ein Beitrag|{count} Beiträge", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} Markiert mit \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "Alle Tags anzeigen", + "description": "The label of the link targeting the tag list page" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Code in Zwischenablage kopieren", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copied": { + "message": "Kopiert", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copy": { + "message": "Kopieren", + "description": "The copy button label on code blocks" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} Elemente", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Seitenleiste ausklappen", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Seitenleiste ausklappen", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Navigation der Dokumentationsseiten", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Vorheriges", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Als Nächstes", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Seitenleiste einklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Seitenleiste einklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Einklappbare Seitenleistenkategorie \"{label}\" umschalten", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Ein Dokument markiert|{count} Dokumente markiert", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} Markiert mit \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Dies ist eine unveröffentlichte Dokumentation für die Version {siteTitle} {versionLabel}.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Dies ist eine Dokumentation für {siteTitle} {versionLabel}, die nicht mehr aktiv gepflegt wird.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Die aktuelle Dokumentation kann unter {latestVersionLink} ({versionLabel}) gefunden werden.", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "Neuste Version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Diese Seite bearbeiten", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direkter Link zur Überschrift", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " am {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " von {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Zuletzt aktualisiert{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Zurück zum Hauptmenü", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versionen", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.common.skipToMainContent": { + "message": "Zum Hauptinhalt springen", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "Auf dieser Seite", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.tags.tagsListLabel": { + "message": "Schlagwörter:", + "description": "The label alongside a tag list" + }, + "theme.colorToggle.ariaLabel": { + "message": "Zwischen Hell- und Dunkelmodus wechseln (derzeit {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "Dunkler Modus", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "Heller Modus", + "description": "The name for the light color mode" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Sprachen", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.tags.tagsPageTitle": { + "message": "Schlagwörter", + "description": "The title of the tag list page" + }, + "Protector of your Matrix-harvest!": { + "message": "Beschützer deiner Matrix-Ernte!" + }, + "Quick Start Tutorial - 5min ⏱️": { + "message": "Schnellstart-Anleitung - 5min ⏱️" + }, + "Welcome": { + "message": "Willkommen", + "description": "Title of the homepage" + }, + "Matrix-Veles is a next-gen bot for protecting Matrix-chat-rooms against spammers.": { + "message": "Matrix-Veles ist ein moderner Bot, um Matrix-Chat-Räume gegen Spammer zu schützen.", + "description": "Meta-Description of the homepage" + }, + "Lightweight": { + "message": "Ressourcenschonend" + }, + "Veles is built to be light on storage, memory and CPU. Run it on your server, PC, Raspberry Pi or Smart Toaster!": { + "message": "Veles ist so konstruiert, dass es geringe Festplattenspeicher, Arbeitsspeicher und CPU-Ressourcen braucht. Führe es auf deinem Server, PC, Raspberry Pi oder Smart Toaster aus!" + }, + "Modern Codebase": { + "message": "Moderne Codebase" + }, + "Veles is built from the ground up to deliver you the best experience using GoLang - a next-gen language from Google.": { + "message": "Veles ist von Grund auf gebaut, um die beste Erfahrung mit GoLang - einer modernen Sprache von Google - zu liefern." + }, + "And the best thing It\\'s open source! Fork it, make a mod where all bad messages are replaced by cat images! You are free!": { + "message": "Und das Beste: Es ist Quelloffen! Forke es, mache eine Mod wo alle bösen Nachrichten mit Katzenbildern ersetzt werden! Du bist frei!" + }, + "Convenient Web Interface": { + "message": "Bequeme Weboberfläche" + }, + "Veles can be managed from any PC in the world. All you need to access the modern web interface is an internet connection and a web browser.": { + "message": "Veles kann von jedem PC auf der Welt verwaltet werden. Alles, was du für den Zugriff auf die moderne Webschnittstelle benötigst, ist eine Internetverbindung und ein Webbrowser." + } +} diff --git a/website/i18n/de/docusaurus-plugin-content-blog/options.json b/website/i18n/de/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000..0199e5c --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Neueste Beiträge", + "description": "The label for the left sidebar" + } +} diff --git a/website/i18n/de/docusaurus-plugin-content-docs/current.json b/website/i18n/de/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000..32099de --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,14 @@ +{ + "version.label": { + "message": "Nächste", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Tutorial - Basics": { + "message": "Einführung - Grundlagen", + "description": "The label for category Tutorial - Basics in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Tutorial - Extras": { + "message": "Einführung - Extras", + "description": "The label for category Tutorial - Extras in sidebar tutorialSidebar" + } +} diff --git a/website/i18n/de/docusaurus-plugin-content-docs/current/intro.md b/website/i18n/de/docusaurus-plugin-content-docs/current/intro.md new file mode 100644 index 0000000..fc4c19f --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-docs/current/intro.md @@ -0,0 +1,17 @@ +--- +sidebar_position: 1 +--- + +# Einleitung + +:::caution + +Diese Dokumentation ist für die Alpha-Version von Matrix-Veles. Veles könnte instabil und seltsam sein. + +::: + +Also bist du an Veles interessiert, das ist großartig! Und tatsächlich bist du genau an die richtige Stelle gekommen. + +Dies ist die Dokumentation für Matrix-Veles. Sie enthält eine hilfreiche Schnellstart-Anleitung sowie detaillierte Referenzen für alles, was du brauchen könntest. + +Wie wäre es mit [der Grundlageneinführung](tutorial-basics/install) zu beginnen? diff --git a/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-basics/_category_.json b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-basics/_category_.json new file mode 100644 index 0000000..2957d6b --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-basics/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Einführung - Grundlagen", + "position": 2 +} diff --git a/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-basics/install.md b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-basics/install.md new file mode 100644 index 0000000..fb3ad2d --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-basics/install.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 1 +--- + +# Veles Installation + +:::caution + +Diese Dokumentation ist für die Alpha-Version von Matrix-Veles. Veles könnte instabil und seltsam sein. + +::: + +:::info Software-Empfehlungen + +Obwohl Veles unter Linux, Windows und macOS funktionieren sollte, **empfehlen wir Linux** zu verwenden, da Veles unter diesem entwickelt und getestet wurde! (Veles kann auf arm-basierten Minicomputern laufen) + +::: + +## Docker + +:::tip TODO + +Dieser Abschnitt wird in Kürze kommen. + +::: + +## Bare-Metal + +:::info Vorab-Installationen + +Veles verwendet *MongoDB* als Datenbank-Backend. Bitte [zuerst den MongoDB Community Server](https://www.mongodb.com/try/download/community) installieren. + +::: + +### Verwendung der Binärversion + +Veles stellt fertige Binärdateien für die verbreitetsten Betriebssysteme und Architekturen bereit. + + 1. Gehe zur [neuesten Version auf GitHub](https://github.com/Unkn0wnCat/matrix-veles/releases/latest) + 2. Navigiere unten zu "*Assets*" und finde die richtige Datei für dein Betriebssystem und deine Architektur + 3. Lade die Datei herunter (Linux/macOS: .tar.gz, Windows: .zip) + 1. (Optional) Überprüfe die MD5-Summe der heruntergeladenen Datei mit der angegebenen MD5-Summe + 4. Entpacke die Datei (Dein Betriebssystem sollte Hilfsprogramme haben, um dies zu tun) + 5. Navigiere in deinem Terminal zum entpackten Verzeichnis + 6. Führe `./matrix-veles generateConfig` aus um eine Basiskonfiguration zu erstellen
(Linux: Du musst vielleicht die Datei mit `chmod +x ./matrix-veles` ausführbar machen) + 7. Bearbeite die Konfiguration in `./config.yaml` um dein Setup widerzuspiegeln + 8. Starte Matrix-Veles mit `./matrix-veles run` + +Du hast jetzt eine voll funktionsfähige Installation von Veles! 🎉 Greife auf das Web-Interface unter http://127.0.0.1:8123 zu! + +### Aus dem Quellcode erstellen + +:::info + +Erfahrung mit GoLang ist hierfür hilfreich! + +::: + +Um aus dem Quellcode zu bauen, stelle sicher, dass du die [neueste Version von GoLang](https://go.dev/dl/) installiert hast. + +1. Öffne ein Terminal und führe `go install github.com/Unkn0wnCat/matrix-veles@latest` aus +2. Nach ein paar Minuten sollte das Build abgeschlossen sein +3. Führe `matrix-veles generateConfig` in dem Ordner aus, in dem du die Konfiguration speichern möchtest +4. Bearbeite die Konfiguration in `./config.yaml` um dein Setup widerzuspiegeln +5. Starte Matrix-Veles mit `matrix-veles run` im selben Verzeichnis wie deine Konfiguration diff --git a/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-extras/_category_.json b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-extras/_category_.json new file mode 100644 index 0000000..82d4088 --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-extras/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Einführung - Extras", + "position": 3 +} diff --git a/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-extras/prometheus.md b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-extras/prometheus.md new file mode 100644 index 0000000..4899508 --- /dev/null +++ b/website/i18n/de/docusaurus-plugin-content-docs/current/tutorial-extras/prometheus.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 1 +--- + +# Prometheus mit Veles verwenden + +Die Verwendung von Prometheus mit Veles ist sehr einfach, da Veles standardmäßig einen kompatiblen Metrikendpunkt bereitstellt. + +Um die Metriken zu verwenden, fügen Sie einfach einen Scrape-Job zu Prometheus hinzu, um die Metriken von `http://[dein-server-hier]:8123/metrics` zu ziehen. + +Und das war's auch schon, du hast jetzt Zugriff auf ein paar relevante Metriken um die Gesundheit deines Veles zu überwachen! 🎉 \ No newline at end of file diff --git a/website/i18n/de/docusaurus-theme-classic/footer.json b/website/i18n/de/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000..6beb0c4 --- /dev/null +++ b/website/i18n/de/docusaurus-theme-classic/footer.json @@ -0,0 +1,30 @@ +{ + "link.title.Docs": { + "message": "Dokumentation", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.More": { + "message": "Mehr", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Tutorial": { + "message": "Einführung", + "description": "The label of footer link with label=Tutorial linking to /docs/intro" + }, + "link.item.label.Imprint": { + "message": "Impressum", + "description": "The label of footer link with label=Imprint linking to https://kevink.dev/legal/about" + }, + "link.item.label.Disclaimer": { + "message": "Disclaimer", + "description": "The label of footer link with label=Disclaimer linking to https://github.com/legal/disclaimer" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/facebook/docusaurus" + }, + "copyright": { + "message": "CC-BY-4.0 2022, Matrix-Veles-Mitwirkende", + "description": "The footer copyright" + } +} diff --git a/website/i18n/de/docusaurus-theme-classic/navbar.json b/website/i18n/de/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000..3e11f84 --- /dev/null +++ b/website/i18n/de/docusaurus-theme-classic/navbar.json @@ -0,0 +1,18 @@ +{ + "title": { + "message": "Matrix-Veles", + "description": "The title in the navbar" + }, + "item.label.Documentation": { + "message": "Dokumentation", + "description": "Navbar item with label Documentation" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + }, + "item.label.Download": { + "message": "Herunterladen", + "description": "Navbar item with label Download" + } +} diff --git a/website/i18n/en/code.json b/website/i18n/en/code.json new file mode 100644 index 0000000..dd44bde --- /dev/null +++ b/website/i18n/en/code.json @@ -0,0 +1,260 @@ +{ + "theme.ErrorPageContent.title": { + "message": "This page crashed.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Try again", + "description": "The label of the button to try again when the page crashed" + }, + "theme.NotFound.title": { + "message": "Page Not Found", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "We could not find what you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Scroll back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.archive.title": { + "message": "Archive", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archive", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Blog list page navigation", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Newer Entries", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Older Entries", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.blog.post.readingTime.plurals": { + "message": "One min read|{readingTime} min read", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.post.readMoreLabel": { + "message": "Read more about {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readMore": { + "message": "Read More", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Blog post page navigation", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Newer Post", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Older Post", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Blog recent posts navigation", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.blog.post.plurals": { + "message": "One post|{count} posts", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} tagged with \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "View All Tags", + "description": "The label of the link targeting the tag list page" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} items", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs pages navigation", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Previous", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Next", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Toggle the collapsible sidebar category '{label}'", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "One doc tagged|{count} docs tagged", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} with \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "latest version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direct link to heading", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " on {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " by {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Last updated{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Back to main menu", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versions", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode (currently {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "dark mode", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "light mode", + "description": "The name for the light color mode" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Languages", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + }, + "Protector of your Matrix-harvest!": { + "message": "Protector of your Matrix-harvest!" + }, + "Quick Start Tutorial - 5min ⏱️": { + "message": "Quick Start Tutorial - 5min ⏱️" + }, + "Welcome": { + "message": "Welcome", + "description": "Title of the homepage" + }, + "Matrix-Veles is a next-gen bot for protecting Matrix-chat-rooms against spammers.": { + "message": "Matrix-Veles is a next-gen bot for protecting Matrix-chat-rooms against spammers.", + "description": "Meta-Description of the homepage" + }, + "Lightweight": { + "message": "Lightweight" + }, + "Veles is built to be light on storage, memory and CPU. Run it on your server, PC, Raspberry Pi or Smart Toaster!": { + "message": "Veles is built to be light on storage, memory and CPU. Run it on your server, PC, Raspberry Pi or Smart Toaster!" + }, + "Modern Codebase": { + "message": "Modern Codebase" + }, + "Veles is built from the ground up to deliver you the best experience using GoLang - a next-gen language from Google.": { + "message": "Veles is built from the ground up to deliver you the best experience using GoLang - a next-gen language from Google." + }, + "And the best thing It\\'s open source! Fork it, make a mod where all bad messages are replaced by cat images! You are free!": { + "message": "And the best thing It\\'s open source! Fork it, make a mod where all bad messages are replaced by cat images! You are free!" + }, + "Convenient Web Interface": { + "message": "Convenient Web Interface" + }, + "Veles can be managed from any PC in the world. All you need to access the modern web interface is an internet connection and a web browser.": { + "message": "Veles can be managed from any PC in the world. All you need to access the modern web interface is an internet connection and a web browser." + } +} diff --git a/website/i18n/en/docusaurus-plugin-content-blog/options.json b/website/i18n/en/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000..9239ff7 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Recent posts", + "description": "The label for the left sidebar" + } +} diff --git a/website/i18n/en/docusaurus-plugin-content-docs/current.json b/website/i18n/en/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000..e62d225 --- /dev/null +++ b/website/i18n/en/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,14 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Tutorial - Basics": { + "message": "Tutorial - Basics", + "description": "The label for category Tutorial - Basics in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.Tutorial - Extras": { + "message": "Tutorial - Extras", + "description": "The label for category Tutorial - Extras in sidebar tutorialSidebar" + } +} diff --git a/website/i18n/en/docusaurus-theme-classic/footer.json b/website/i18n/en/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000..6da31f6 --- /dev/null +++ b/website/i18n/en/docusaurus-theme-classic/footer.json @@ -0,0 +1,30 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Tutorial": { + "message": "Tutorial", + "description": "The label of footer link with label=Tutorial linking to /docs/intro" + }, + "link.item.label.Imprint": { + "message": "Imprint", + "description": "The label of footer link with label=Imprint linking to https://kevink.dev/legal/about" + }, + "link.item.label.Disclaimer": { + "message": "Disclaimer", + "description": "The label of footer link with label=Disclaimer linking to https://github.com/legal/disclaimer" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/facebook/docusaurus" + }, + "copyright": { + "message": "CC-BY-4.0 2022, Matrix-Veles Contributors", + "description": "The footer copyright" + } +} diff --git a/website/i18n/en/docusaurus-theme-classic/navbar.json b/website/i18n/en/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000..5a6955d --- /dev/null +++ b/website/i18n/en/docusaurus-theme-classic/navbar.json @@ -0,0 +1,18 @@ +{ + "title": { + "message": "Matrix-Veles", + "description": "The title in the navbar" + }, + "item.label.Documentation": { + "message": "Documentation", + "description": "Navbar item with label Documentation" + }, + "item.label.GitHub": { + "message": "GitHub", + "description": "Navbar item with label GitHub" + }, + "item.label.Download": { + "message": "Download", + "description": "Navbar item with label Download" + } +} diff --git a/website/package.json b/website/package.json index e40db57..c877a44 100644 --- a/website/package.json +++ b/website/package.json @@ -12,9 +12,14 @@ "serve": "docusaurus serve", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" + "typecheck": "tsc", + "crowdin": "crowdin", + "update-translations": "docusaurus write-translations && crowdin upload", + "download-translations": "crowdin download", + "crowdin:sync": "docusaurus write-translations && crowdin upload && crowdin download" }, "dependencies": { + "@crowdin/cli": "3", "@docusaurus/core": "2.0.0-beta.16", "@docusaurus/preset-classic": "2.0.0-beta.16", "@mdx-js/react": "^1.6.22", diff --git a/website/src/components/HomepageFeatures/index.tsx b/website/src/components/HomepageFeatures/index.tsx index 4e35ef6..0a4c2c1 100644 --- a/website/src/components/HomepageFeatures/index.tsx +++ b/website/src/components/HomepageFeatures/index.tsx @@ -2,6 +2,8 @@ import React from 'react'; import clsx from 'clsx'; import styles from './styles.module.css'; +import Translate, {translate} from '@docusaurus/Translate'; + type FeatureItem = { title: string; image: string; @@ -10,36 +12,40 @@ type FeatureItem = { const FeatureList: FeatureItem[] = [ { - title: 'Lightweight', + title: translate({message:'Lightweight'}), image: null, description: ( - <> + Veles is built to be light on storage, memory and CPU. Run it on your server, PC, Raspberry Pi or Smart Toaster! - + ), }, { - title: 'Modern Codebase', + title: translate({message:'Modern Codebase'}), image: null, - description: ( + description: <> - Veles is built from the ground up to deliver you the best - experience using GoLang - a next-gen language from Google.
- And the best thing? It's open source! Fork it, make a mod where - all bad messages are replaced by cat images! You are free! + + Veles is built from the ground up to deliver you the best + experience using GoLang - a next-gen language from Google. +
+ + And the best thing It\'s open source! Fork it, make a mod where + all bad messages are replaced by cat images! You are free! + - ), + , }, { - title: 'Convenient Web Interface', + title: translate({message:'Convenient Web Interface'}), image: null, description: ( - <> + Veles can be managed from any PC in the world. All you need to access the modern web interface is an internet connection and a web browser. - + ), }, ]; diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index 77fd77b..0375427 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -6,18 +6,22 @@ import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import styles from './index.module.css'; import HomepageFeatures from '@site/src/components/HomepageFeatures'; +import Translate, {translate} from '@docusaurus/Translate'; + function HomepageHeader() { const {siteConfig} = useDocusaurusContext(); return (

{siteConfig.title}

-

{siteConfig.tagline}

+

Protector of your Matrix-harvest!

- Quick Start Tutorial - 5min ⏱️ + + {"Quick Start Tutorial - 5min ⏱️"} +
@@ -29,8 +33,8 @@ export default function Home(): JSX.Element { const {siteConfig} = useDocusaurusContext(); return ( + title={translate({message: `Welcome`, description: "Title of the homepage"})} + description={translate({message: "Matrix-Veles is a next-gen bot for protecting Matrix-chat-rooms against spammers.", description: "Meta-Description of the homepage"})}>
diff --git a/website/src/pages/markdown-page.md b/website/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b..0000000 --- a/website/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/website/yarn.lock b/website/yarn.lock index e90887a..895abec 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -1170,6 +1170,14 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@crowdin/cli@3": + version "3.7.8" + resolved "https://registry.yarnpkg.com/@crowdin/cli/-/cli-3.7.8.tgz#a32bb78836b20cefd91c83b193c3d003c906b2d6" + integrity sha512-DDA2ggfnYsfoprWmxNpZ5QOxO58RSsbFHHSi+558bqBJMag1z0RjSGSCriqfCQtvBnn2SIVnBsBOaw+HDWXF4w== + dependencies: + njre "^0.2.0" + shelljs "^0.8.4" + "@docsearch/css@3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.0.0.tgz#fe57b474802ffd706d3246eab25d52fac8aa3698" @@ -2567,6 +2575,11 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4 node-releases "^2.0.2" picocolors "^1.0.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -2744,6 +2757,11 @@ chokidar@^3.4.2, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" +chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -2860,6 +2878,11 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== +command-exists-promise@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/command-exists-promise/-/command-exists-promise-2.0.2.tgz#7beecc4b218299f3c61fa69a4047aa0b36a64a99" + integrity sha512-T6PB6vdFrwnHXg/I0kivM3DqaCGZLjjYSOe0a5WgFKcz1sOnmOeIjnhQPXVXX3QjVbLyTJ85lJkX6lUpukTzaA== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -3757,6 +3780,13 @@ fbjs@^3.0.0, fbjs@^3.0.1: setimmediate "^1.0.5" ua-parser-js "^0.7.30" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + feed@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" @@ -3895,6 +3925,13 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-minipass@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + fs-monkey@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" @@ -5193,6 +5230,21 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minipass@^2.6.0, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -5248,6 +5300,16 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +njre@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/njre/-/njre-0.2.0.tgz#e5abfbafafb3db4438fe6b149da9a733fab0bf3d" + integrity sha512-+Wq8R6VmjK+jI8a9NdzfU6Vh50r3tjsdvl5KJE1OyHeH8I/nx5Ptm12qpO3qNUbstXuZfBDgDL0qQZw9JyjhMw== + dependencies: + command-exists-promise "^2.0.2" + node-fetch "^2.5.0" + tar "^4.4.8" + yauzl "^2.10.0" + no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -5263,7 +5325,7 @@ node-emoji@^1.10.0: dependencies: lodash "^4.17.21" -node-fetch@2.6.7: +node-fetch@2.6.7, node-fetch@^2.5.0: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -5593,6 +5655,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -6542,7 +6609,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -6758,7 +6825,7 @@ shell-quote@^1.7.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== -shelljs@^0.8.5: +shelljs@^0.8.4, shelljs@^0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== @@ -7050,6 +7117,19 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tar@^4.4.8: + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== + dependencies: + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" + terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" @@ -7712,6 +7792,11 @@ xtend@^4.0.0, xtend@^4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +yallist@^3.0.0, yallist@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -7722,6 +7807,14 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"